Time to git a new versioning system?
Moderator: OpenTTD Developers
Re: Time to git a new versioning system?
Git may be good for the branches and such, but it is IMHO a bit more complex and harder to learn for new developers. I personaly use only commandline clients for CVS and SVN, so I won't care about lack of GUI on some platforms :)
But for "unofficial" developers without write access (like me :) it would be enough just to find equivalent commands to "svn update" and "svn diff" :)
If the branch merging is easier in GIT, is it planed to give write access to their private branches to patch authors? (like having one branch for each reasonable patch?)
Authors could develop their patch in the GIT and once the patch will reach "final quality", the patch branch would be merged with trunk. The updates/further modifications to the patch could then be submitted back to the branch and re-merged with trunk after some of the developers checked it. Also, advantage is, that more people can cooperate on one patch, which could be useful especially with large complex patches.
This would be easier than manually maintaining some set of patches on the disk and syncing them all with trunk as the trunk changes and the patches are not (yet) accepted.
But for "unofficial" developers without write access (like me :) it would be enough just to find equivalent commands to "svn update" and "svn diff" :)
If the branch merging is easier in GIT, is it planed to give write access to their private branches to patch authors? (like having one branch for each reasonable patch?)
Authors could develop their patch in the GIT and once the patch will reach "final quality", the patch branch would be merged with trunk. The updates/further modifications to the patch could then be submitted back to the branch and re-merged with trunk after some of the developers checked it. Also, advantage is, that more people can cooperate on one patch, which could be useful especially with large complex patches.
This would be easier than manually maintaining some set of patches on the disk and syncing them all with trunk as the trunk changes and the patches are not (yet) accepted.
If you need something, do it yourself or it will be never done.
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
Re: Time to git a new versioning system?
Well, that's the thing about GIT: There is really no distinction between the "real" developers and the "unofficial" developers as far as the system is concerned. Every person has their own copy of the tree, and every person can create their own branches - branching is done on the local machine, not at a central repository. Linus felt very strongly that the whole branching/merging system was very broken in CVS and SVN and that branching was too strongly discouraged.If the branch merging is easier in GIT, is it planed to give write access to their private branches to patch authors?
So yes, you are given write access - complete write access. Because it's distributed system: Everything is on your machine, and not tucked away at a central repository.
The concept of a "trunk" is less meaningful to GIT - instead of having a "trunk", the person or people maintaining the "official" version of the software simply decide who to trust with changes, and draws changes from the people they trust.
"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
Re: Time to git a new versioning system?
Still, with svn checkout I still have write access to the checkouted copy, technically :)CobraA1 wrote: So yes, you are given write access - complete write access. Because it's distributed system: Everything is on your machine, and not tucked away at a central repository.
The concept of a "trunk" is less meaningful to GIT - instead of having a "trunk", the person or people maintaining the "official" version of the software simply decide who to trust with changes, and draws changes from the people they trust.
I just wonder it it is possible using the git repository to cooperate say 3 people on some patch (for example having 3 people write rights to "chrisin" or some other branch) In this manner, the branch have to be (physically) stored on the central server with openttd source tree somehow ...
If you need something, do it yourself or it will be never done.
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
Re: Time to git a new versioning system?
You're still thinking in terms of centralised servers. 
You can co-operate on branches in exactly the same way you would with "trunk" (since that's just someone's branch). You each pull the changes from each other. So the repositories do have to be accessible to the people working on the patch, but there isn't an one central repository for all the work.
(Actually, you can set up an svn-style central git repository which everyone pushes to, but why would you want to?)

You can co-operate on branches in exactly the same way you would with "trunk" (since that's just someone's branch). You each pull the changes from each other. So the repositories do have to be accessible to the people working on the patch, but there isn't an one central repository for all the work.
(Actually, you can set up an svn-style central git repository which everyone pushes to, but why would you want to?)
No-one's more important than the earthworm.
Re: Time to git a new versioning system?
But if there is no "central repository", how do other developers get my changes?Maedhros wrote:You're still thinking in terms of centralised servers. :)
You can co-operate on branches in exactly the same way you would with "trunk" (since that's just someone's branch). You each pull the changes from each other. So the repositories do have to be accessible to the people working on the patch, but there isn't an one central repository for all the work.
(Actually, you can set up an svn-style central git repository which everyone pushes to, but why would you want to?)
I turn on computer, do something on "my patch", then turn it off. Later, someone want to resume my work. How does he get to files that are on my harddrive only and the computer is off? :)
So either I'll have to host some "private" git server on my machine (with my branches) to be accessible to the people that are on the "team", or put the changes in a central location (though they'll be in a branch) - i.e. back to central openttd git server.
If you need something, do it yourself or it will be never done.
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
Re: Time to git a new versioning system?
They pull it from you, or someone else who they trust to make changes to the branch in question.Bilbo wrote:But if there is no "central repository", how do other developers get my changes?
And therein lies the problem. git is designed with Linux in mind. Most Linux boxes go down for reboot at most once every hundred days, and almost never go down for halt. Windows boxes can't often manage to stay up beyond three weeks. Much over four is completely unheard of, since you have to reboot every PatchTuesday.Bilbo wrote:then turn it off.
repo.or.cz provides free globally accessible git repos.
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
Projects: NFORenum (download) | PlaneSet (Website) | grfcodec (download) | grfdebug.log parser
-
- Transport Coordinator
- Posts: 333
- Joined: 25 Aug 2005 09:44
- Location: Eindhoven, Netherlands
Re: Time to git a new versioning system?
Well not every - once in a blue moon there won't be a patch requiring restartDaleStan wrote:(...) since you have to reboot every PatchTuesday

Fortunately, you can also push your changes into someone elses repository if that repo is available online, and alternatively you can just mail him your changes, which he can then easily 'pull' into his repo. And if you forget one or send one again - git will handle this quite gracefully and skip the duplicate, or merge the remainder as far as possible.DaleStan wrote:And therein lies the problem.
Re: Time to git a new versioning system?
You don't have. You cannot commit to the repository, you have only working copy of given revision, not the whole repo, you can't for example rebase your branch so it applies cleanly to the current svn HEAD.Bilbo wrote:Still, with svn checkout I still have write access to the checkouted copy, technically
Re: Time to git a new versioning system?
And therein lies the problem. git is designed with Linux in mind. Most Linux boxes go down for reboot at most once every hundred days, and almost never go down for halt. Windows boxes can't often manage to stay up beyond three weeks. Much over four is completely unheard of, since you have to reboot every PatchTuesday.Bilbo wrote:then turn it off.
repo.or.cz provides free globally accessible git repos.[/quote]
Well, I turn off my desktop computer for night, regardless of whether I run Linux or Windows currently. Same for computer in work .. I leave work, I turn it off, I return, I turn it on. It's not question of OS, but role of the computer. I turn desktops off when I do not plan to use it for longer time (like overnight), since electricity isn't free and fan noise also isn't ideal for good sleep (if the computer is in same room as bed)
Hmm ... repo.or.cz seems to solve that problem nicely, I'll just commit my changes there and problem solved :)
If you need something, do it yourself or it will be never done.
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
Re: Time to git a new versioning system?
Turn off restarts? Turn off patches? (I've done the second for my Windows box, no more uncancellable restarts, and holes in OS are fixed by having restrictive firewall and not using IE :)boekabart wrote:Well not every - once in a blue moon there won't be a patch requiring restart ;)DaleStan wrote:(...) since you have to reboot every PatchTuesday
Mailing patches ... that is what you can do even without GIT .... it is a bit cumbersome and I hope that with GIT I'll avoid this :)boekabart wrote:Fortunately, you can also push your changes into someone elses repository if that repo is available online, and alternatively you can just mail him your changes, which he can then easily 'pull' into his repo. And if you forget one or send one again - git will handle this quite gracefully and skip the duplicate, or merge the remainder as far as possible.DaleStan wrote:And therein lies the problem.
If you need something, do it yourself or it will be never done.
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
My patches: Extra large maps (1048576 high, 1048576 wide) (FS#1059), Vehicle + Town + Industry console commands (FS#1060), few minor patches (FS#2820, FS#1521, FS#2837, FS#2843), AI debugging facility
Other: Very large ships NewGRF, Bilbo's multiplayer patch pack v5 (for OpenTTD 0.7.3)
Re: Time to git a new versioning system?
Cygwin includes the complete git package, you just need to install the Cygwin X packages and use a graphical shell like xterm. The cygwin version of git may have some perfomance problems, but OpenTTD is small enough so it doesn't matter.CobraA1 wrote: 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.
And if you've ever tried to keep a patch up to date, git rebase will do wonders for you. This feature is heaven for patch writers without commit access.
-- Michael Lutz
Re: Time to git a new versioning system?
I'm pretty sure I didn't install the Cygwin X packages, but git-gui works for me. (FSVO work; git has hissy fits when Cygwin is configured for Windows-style line-feeds.)
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
Projects: NFORenum (download) | PlaneSet (Website) | grfcodec (download) | grfdebug.log parser
Who is online
Users browsing this forum: No registered users and 15 guests