Jump to content

Question on upcoming git transition


Recommended Posts

Hello everyone,

browsing yesterday's IRC logs, it appears to me more and more members of the Wildfiregames team are using a github repository for development now.
This seems logical given that git is supposed to replace the current SVN-based repositories in the

future. As stated in the elder git migration forum thread the 'final' git repository of 0ad will be located on the trac server.

As i learned from IRC and confirmed by web search, connecting to a git repository requires an intial "cloning" which downloads the complete repository on the local machine. The problem is that operation is unforgiving:
Unlike svn, any interruption of the clone operation causes git to re-start the whole download operation. Some googling shows that effect is known since 2009 and fixing it seems hard (if possible at all without breaking backward compatibility, see 3rd post of linked forum thread). So it seems unlikely this limitation will be removed in the forseeable future. Moreover, the maiority of git(hub) repositories seem rather small compared to 0AD, so there is low pressure to put efforts on it.

In short:

The svn-git migration might effectively lock out at least some newcomers from the project as the git clone-non-resume problem demands an initial uninterruptable download of several gigabytes (according to Philip on IRC, 2GByte at the moment). I imagine the problem will grow in the future (literally).

I see at least three ways of dealing with that:

  1. Keep the current parallel SVN|git system, maybe with an auto-converter between them.
  2. If there is a way to convert existant .svn checkouts to git, a migration might be possible (git svn seems capable of resuming).
  3. Just switch off the SVN repo at day X and tell the people outside to either help themselves or go :rtfm: .

Any comments or official statements available?

Link to comment
Share on other sites

There are ways to solve this. Like we can provide a zipped git repo that you can just unpack to get a (slightly older version) of the git branches. Those separate files can be distributed in any format, and can also be resumable. I think we should release a zipped git repo on every alpha release. So people can just download that, and manually update to the current git revision.

We could also split the git repo in several repos, though that'd add more management issues.

  • Like 1
Link to comment
Share on other sites

Didn't have a problem cloning the git repository to my local machine. For my teacher's project I sometimes need to rely on stable transfer that takes one whole night, i.e. 12 hours. And it works even though the connection throughput is ... interesting (64kB/s). :)

Where is the problem then? If it fails, just restart again. Humanity has put tons of effort into handshaking protocols that make data transfer immensely forgivable.

Never mind, good you brought up the issue, so thanks for your detailed and interesting links. Correct me if I'm wrong. I'm open to discussion, perhaps I misunderstood the problem. ;)

  • Like 1
Link to comment
Share on other sites

sanderd17:

If there will be zipped repros available (possibly split into smaller packets) this might help. Besides... What happens when the git equivalent of "svn update" is interrupted? Can that action be restarted or would it screw up the local repository?

Hephaestion:

My internet connection is quite unstable, and for "logistical" reasons i simply cannot keep my machine online for more than an hour/day or so. When i started digging into 0ad, i had the svn check-out running in the background while i was online, slowly "trickling" the repo down.

So, if there were only "git clone" available for getting 0ad, well... Then i'd simply have to part with it.

Link to comment
Share on other sites

Git is designed so the repo is always in a stable state. This means, when an operation fails, git automatically reverts itself. That's the problem causing the difficult first checkout.

If you pull the changes regularly, it's very rare a single pull will take more than an hour. So then you shouldn't have problems.

Link to comment
Share on other sites

So, if there were only "git clone" available for getting 0ad, well... Then i'd simply have to part with it.

Actually, I think it was planned to keep a read-only SVN repo around after the git transition, kind of like how we use git to mirror SVN now, we would reverse the process. Only team members would be required to use git to commit changes, and we'd prefer everyone else to use it for the better workflow, but SVN could still be there as a backup option.
Link to comment
Share on other sites

Me likez torrentz. I also thought that might be a good option, but wasn't too sure about it since that would require some people to keep an old version of the repo on their harddrive that they can't update (since that would break the torrent)

So ... yeah.

Having an svn version that when downloaded can be updated with git to the latest git version would be perfect.

Link to comment
Share on other sites

  • 2 weeks later...

The torrent version like more. Torrent is best client for sharing large files. I using utorrent since (2006) and is basically program for me.

Is easy, faster and you can pause every time. Git hub it's complicated may be in Linux or Mac don't but in windows there aren't good client to git hub like SVN tortoise.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...