Time to git a new versioning system?

Forum for technical discussions regarding development. If you have a general suggestion, problem or comment, please use one of the other forums.

Moderator: OpenTTD Developers

CobraA1
Route Supervisor
Route Supervisor
Posts: 480
Joined: 07 Nov 2003 17:52
Location: USA

Time to git a new versioning system?

Post by CobraA1 »

Hmm, ran across "git," a relatively new version control system. It's a more distributed and decentralized versioning system, and it's apparently much better than both CVS and SVN at merging and handling branches - something that could help OpenTTD, since it seems that there are a lot of OpenTTD patches floating around. It's the brainchild of Linus Torvalds, who does a lot of work applying changes from other people into the Linux kernel. The only problem seems to be that there's no "TortoiseGIT" for Windows users yet.

Further information on git can be found here:
http://en.wikipedia.org/wiki/Git_%28software%29

A video of Linus discussing git can be found here:
http://www.youtube.com/watch?v=4XpnKHJAok8

Word of warning: Linus really doesn't like CVS or SVN.

Thoughts? Comments? Would it be worth switching to?
"If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music he hears, however measured or far away" --Henry David Thoreau
User avatar
Digitalfox
Chief Executive
Chief Executive
Posts: 710
Joined: 28 Oct 2004 04:42
Location: Catch the Fox if you can...

Re: Time to git a new versioning system?

Post by Digitalfox »

User avatar
AntBUK
Transport Coordinator
Transport Coordinator
Posts: 319
Joined: 02 May 2007 12:29
Location: Sheffield, England
Contact:

Re: Time to git a new versioning system?

Post by AntBUK »

Pity there isn't a WINE like program for Windows to run a Linux shell

----------------
Was last listening to: Wednesday 13 - I Walked With A Zombie
via FoxyTunes
Rasing Awareness: Aspergers Syndrome 1 (NAS UK)2 (BBC)3 (YaleDDC)


Something is driving you insane... It is me.
DaleStan
TTDPatch Developer
TTDPatch Developer
Posts: 10285
Joined: 18 Feb 2004 03:06
Contact:

Re: Time to git a new versioning system?

Post by DaleStan »

Cygwin and MinGW both provide a nearly-complete set of Unix tools, compiled for Win32. Cygwin doesn't have a git package (Yet?) but it does apparently provide enough tools to build git from source. (./configure worked; make is still working as I post.)

There's something about the 1.5.3.3 tarball that WinRAR 3.50 doesn't like, but Cygwin's tar and bzip handle it just fine.
To get a good answer, ask a Smart Question. Similarly, if you want a bug fixed, write a Useful Bug Report. No TTDPatch crashlog? Then follow directions.
Projects: NFORenum (download) | PlaneSet (Website) | grfcodec (download) | grfdebug.log parser
Rubidium
OpenTTD Developer
OpenTTD Developer
Posts: 3815
Joined: 09 Feb 2006 19:15

Re: Time to git a new versioning system?

Post by Rubidium »

1) it doesn't have a incremental version number, so it will be very hard to know whether someone should upgrade or downgrade to "fix" a particular bug.
2) the Windows support sucks a lot.

3) we run a svn->git and svn->hg (Mercurial) service; you can get a git or hg checkout at respectively git.openttd.org and hg.openttd.org. Note that the version numbers used for them are not the trunk (like r11111), but rather g<some hexadecimals> and h<some hexadecimals>, so you cannot join a nightly server with your git checkout.
CobraA1
Route Supervisor
Route Supervisor
Posts: 480
Joined: 07 Nov 2003 17:52
Location: USA

Re: Time to git a new versioning system?

Post by CobraA1 »

the Windows support sucks a lot.
Agreed. Git looks pretty new, though, so I'm hoping that something will come out soon.
Cygwin doesn't have a git package (Yet?)
Actually - I just installed Cygwin today, and it seems that it's in the latest Cygwin. Just the command line Git, though, none of the GUI stuff for X as far as I know.
Pity there isn't a WINE like program for Windows to run a Linux shell
Oh, but there are =). Look for virtual machines, like VMware or Virtual PC.

I'm currently trying Gentoo on Virtual PC. It seems that most graphical Linux distros don't work with Virtual PC, though. VMware might be better. If you don't care about a GUI, Virtual PC is free and works fine.

I'm gonna try git and see how well it works. I'm hoping it will make it possible to combine my patch more easily with other patches, so in addition to my own patch, I can make patches that combine mine with others.
"If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music he hears, however measured or far away" --Henry David Thoreau
User avatar
JGR
Tycoon
Tycoon
Posts: 2604
Joined: 08 Aug 2005 13:46
Location: Ipswich

Re: Time to git a new versioning system?

Post by JGR »

Mercurial works natively on Windows as well as *nix. It's what I use for local projects, as it's not nearly as much hassle as SVN to set up. You don't get any GUI however. I've never tried Git though...

As for a wine-like program to run a bash shell, I'd consider coLinux, which has always worked fine for me (with Slackware), but I daresay the default debian image is fine. (The only snag is that gcc chokes on cofs, so you have to use slow samba or rsync, to run remote compile jobs)
X works fine as well as you can run a windows x-server and pipe the data over a virtual network connection. (some configuration may be required).
Ex TTDPatch Coder
Patch Pack, Github
chrissicom
Route Supervisor
Route Supervisor
Posts: 415
Joined: 07 Oct 2004 10:05

Re: Time to git a new versioning system?

Post by chrissicom »

@CobraA1 Actually Virtual PC should virtually run any Linux distro, I have tried Gentoo, Debian and Ubuntu without the "usual" problems I would get with a Live CD or true install as well.

I really dislike the idea though to install an additional "program" (not to say OS) just to do the version management for my OpenTTD checkout. TortoiseSVN is working perfectly fine for me and I also see no reason why SVN should be bad. Git seems to be one of those "you should use Linux because it's better" tools and not like what I call "a true open source app" which works interoperable on Windows and Linux.
boekabart
Transport Coordinator
Transport Coordinator
Posts: 333
Joined: 25 Aug 2005 09:44
Location: Eindhoven, Netherlands

Re: Time to git a new versioning system?

Post by boekabart »

chrissicom wrote:TortoiseSVN is working perfectly fine for me and I also see no reason why SVN should be bad. Git seems to be one of those "you should use Linux because it's better" tools and not like what I call "a true open source app" which works interoperable on Windows and Linux.
Well... as much as I dislike git (can't get it to work really -windows user), I agree that it has certain advantages.... Try to work on a serious patch with svn (and no branch)... It's very hard to keep track of your changes - you keep making diffs but you lose the diffs between those diffs. This is where git is very handy.... if only it would be reasonably easy to get it to work from a windows command line at least.
User avatar
AntBUK
Transport Coordinator
Transport Coordinator
Posts: 319
Joined: 02 May 2007 12:29
Location: Sheffield, England
Contact:

Re: Time to git a new versioning system?

Post by AntBUK »

From what I can tell coLinux is an installation job, I was meaning something like QEmu, just without the hard drive images
Rasing Awareness: Aspergers Syndrome 1 (NAS UK)2 (BBC)3 (YaleDDC)


Something is driving you insane... It is me.
BigBB
Engineer
Engineer
Posts: 106
Joined: 07 Aug 2007 20:39

Re: Time to git a new versioning system?

Post by BigBB »

CobraA1 wrote:
Pity there isn't a WINE like program for Windows to run a Linux shell
Oh, but there are =). Look for virtual machines, like VMware or Virtual PC.

...
Wikipedia: The name 'Wine' derives from the recursive acronym Wine Is Not an Emulator.

Or exactly: a VM simulate a x86 Hardware (or others like ppc for Mac), completely. WINE 'only' simulate the win API direct to Linux, so you can use win programs native on Linux. And there isn't any program like WINE for win. Thats completely different.
OpenTTD-patch(es) in development: missing shores (new version of: completely shore), road lamps for each position
chrissicom
Route Supervisor
Route Supervisor
Posts: 415
Joined: 07 Oct 2004 10:05

Re: Time to git a new versioning system?

Post by chrissicom »

so you can use win programs native on Linux
Also you can't even use 5% of Windows apps with WINE especially no new ones. And since most applications work on Windows anyway and those who would be capable of programming an emulator hate Microsoft and are Linux freaks (purely my assumption) there's little chance to see such an emulator any time soon and that's reason enough for me to dislike git as much as I dislike a Linux environment.
gfldex
Engineer
Engineer
Posts: 10
Joined: 16 Sep 2007 22:28

Re: Time to git a new versioning system?

Post by gfldex »

http://git.or.cz/gitwiki/InterfacesFron ... ff5d5af1d6

This seams to be the right place to look for a frontend. I didn't take a close look and thus can't tell if there is anything that runs under win32. Not because I hate windows but because I simply don't care.
CobraA1
Route Supervisor
Route Supervisor
Posts: 480
Joined: 07 Nov 2003 17:52
Location: USA

Re: Time to git a new versioning system?

Post by CobraA1 »

Actually Virtual PC should virtually run any Linux distro, I have tried Gentoo, Debian and Ubuntu without the "usual" problems I would get with a Live CD or true install as well.
Well, the problem for me seems to be configuring the GUI part from the command line. It seems I have troubles finding out how to configure the graphical settings like resolution from the command line. For some odd reason they all seem to select some odd settings that Virtual PC doesn't like. I think I tried Ubuntu, and it gave me this weird black screen that was really wide and not very tall.
I really dislike the idea though to install an additional "program" (not to say OS) just to do the version management for my OpenTTD checkout.
Theoretically, git is a replacement for, not in addition to, SVN. It's true, though, that one can be layered on top of the other, so they can work together. In the end, yeah you should work with whatever you're comfortable with.
TortoiseSVN is working perfectly fine for me and I also see no reason why SVN should be bad.
Same here, I've been using the TortoiseSVN, and it works okay. I haven't actually tried git yet, but I'm hoping it has some advantages I could leverage.

The biggest problem so far is trying to get a copy of the git tree. I dunno if it's Cygwin, or if I'm just doing it wrong.
Git seems to be one of those "you should use Linux because it's better" tools and not like what I call "a true open source app" which works interoperable on Windows and Linux.
I think it's still quite young, and it's just that nobody has picked up on developing such a tool yet. If it gains popularity in the Linux community, I think it's likely that somebody will try to create a GUI for Windows.

The primary benefit of git seems to be that it's largely decentralized and it's much easier to maintain several branches and keep them synchronized with the trunk.
Wikipedia: The name 'Wine' derives from the recursive acronym Wine Is Not an Emulator.
Yup. It's a "virtualizer" if I remember my terminology right. I'm sure VMware and Virtual PC also take advantage of virtualization when possible and are not true emulators when on a platform with a similar instruction set to what they're emulating. True emulation is very slow, and they try to avoid that when possible. Running Windows XP in Virtual PC is very fast - it can't be true emulation. I've played with DOSBox, a true emulator, and it has major performance troubles.
and that's reason enough for me to dislike git as much as I dislike a Linux environment.
I prefer to use the right tools for the job, rather than letting guilt by association determine what I use. If it turns out git is the wrong tool, I'll go back to using SVN. I'm gonna at least give it a chance, though.

. . . and I remember now why I never used Gentoo as my primary OS. It has to compile everything you put on it. It's still emerging KDE after letting it run overnight. Compiling everything is great for a development environment, but not useful for productivity.
"If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music he hears, however measured or far away" --Henry David Thoreau
gfldex
Engineer
Engineer
Posts: 10
Joined: 16 Sep 2007 22:28

Re: Time to git a new versioning system?

Post by gfldex »

CobraA1 wrote: I think I tried Ubuntu, and it gave me this weird black screen that was really wide and not very tall.
You may want to take a look here. You will have to scroll down about 30% for the x-server config tips.
CobraA1 wrote: I think it's still quite young, and it's just that nobody has picked up on developing such a tool yet. If it gains popularity in the Linux community, I think it's likely that somebody will try to create a GUI for Windows.
So far I came across two big project that use it (linux and compiz). There are frontends for both gtk and qt. It would not be black magic to port such tools. But personally I doubt that will happen very soon. Simply because there is no big need to.
CobraA1 wrote: Yup. It's a "virtualizer" if I remember my terminology right.
Nope, it's not. It a reimplementation of win32 and quite a few other APIs (COM, DirectX, etc.). It further got a loader for PE and a dynamic linker that does understand DLLs (what is black magic, I say).
CobraA1 wrote: . . . and I remember now why I never used Gentoo as my primary OS. It has to compile everything you put on it. It's still emerging KDE after letting it run overnight. Compiling everything is great for a development environment, but not useful for productivity.
There is a good chance that you are doing something wrong. Take a look here.
wolf
Engineer
Engineer
Posts: 114
Joined: 08 Jul 2004 13:43

Re: Time to git a new versioning system?

Post by wolf »

BigBB wrote:And there isn't any program like WINE for win.
http://sourceforge.net/projects/line/
Rafagd
Engineer
Engineer
Posts: 36
Joined: 01 Oct 2007 15:30

Re: Time to git a new versioning system?

Post by Rafagd »

A native Microsoft Windows port (using MinGW) is approaching completion, with alpha versions of an installer ready for testing (under the name "WinGit")
http://code.google.com/p/msysgit/downloads/list

THERE IS a project to do a Git for Windows. But it is in beta stage.
Aydan
Traffic Manager
Traffic Manager
Posts: 199
Joined: 28 Feb 2003 14:49
Location: Germany

Re: Time to git a new versioning system?

Post by Aydan »

Running Windows XP in Virtual PC is very fast - it can't be true emulation. I've played with DOSBox, a true emulator, and it has major performance troubles
DosBox is not a hardware emulator like VirtualPC or VMware, which emulate the same architecture they're running on while DosBox emulates DOS and a different CPU than it runs on, which is probably why it performs so badly.
VirtualPC and VMware run instructions as they are.
CobraA1
Route Supervisor
Route Supervisor
Posts: 480
Joined: 07 Nov 2003 17:52
Location: USA

Re: Time to git a new versioning system?

Post by CobraA1 »

THERE IS a project to do a Git for Windows. But it is in beta stage.
Looks like a pretty small project right now, and it seems to have troubles in Vista - so I don't know if it will take off.
DosBox is not a hardware emulator like VirtualPC or VMware, which emulate the same architecture they're running on while DosBox emulates DOS and a different CPU than it runs on, which is probably why it performs so badly.
VirtualPC and VMware run instructions as they are.
Actually, DOSBox does in fact emulate the hardware found in old DOS systems, including old display formats that may not be found in modern systems and sound systems such as SoundBlaster that were more popular in the past but are not very popular today.

You are correct, however, that it does not assume that it is running on the same CPU as the host system and will completely emulate the CPU.*

In this way, Virtual PC and VMware are much closer to WINE than a true emulator, as they won't emulate the CPU if they can virtualize it. I do not believe that WINE is very different than Virtual PC or VMware - and frankly, if VMware or Virtual PC can do the job decently, why do a "WINE for Windows"?

*Note that now it seems that DOSBox does in fact have "recompiling cores" that will increase performance by compiling or translating the code to run directly on the host machine. However, I have not recently used DOSBox, and the last time I used it it did not have such a feature.
"If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music he hears, however measured or far away" --Henry David Thoreau
Rafagd
Engineer
Engineer
Posts: 36
Joined: 01 Oct 2007 15:30

Re: Time to git a new versioning system?

Post by Rafagd »

CobraA1 wrote:
THERE IS a project to do a Git for Windows. But it is in beta stage.
Looks like a pretty small project right now, and it seems to have troubles in Vista - so I don't know if it will take off.
Well, at least there is a project...

I don't know if Git is really good, but if it is, when Linux programmers need to do Windows programs, they will want to do with Git. Even if he is a "linux freak".

So that is a pretty good reason to port the program to Windows.
Post Reply

Return to “OpenTTD Development”

Who is online

Users browsing this forum: No registered users and 9 guests