It’s really as easy as "git svn clone So as you see migration itself is not a big deal. Problem is that someone maybe likes SVN more and don’t likes the idea of migration itself despite all benefits I described a few posts earlier. So first of all we need some kind of approval from all main developers of vcmi.

I’ve set up github “official” mirror for vcmi - It is updated from SVN trunk automatically with delay no more than 10 minutes.

Would be great to see link to this repo in left menubar on main page.

Alright then, I’ve added the link. Hopefully it’ll prove helpful to someone.

I can provide a “vcmi” github account credentials and simple crontab bash script that you may run on to make mirror official. If this site is hosted on VDS it would be no problem at all to add to crontab task for synchronizing repos.

Now when everything seem to work we can promote “Unofficial github mirror” to “Github mirror” and move it up right after “SVN web browser” :slight_smile:

Done. :slight_smile:

It is… impossible. Strange as it sounds, the script allows only 4 custom links before its navigation links. :-/
Eh, I guess we’ll eventually make the wiki to be the front page or devise something entirely new. At the moment it’s not that relevant though.



I’m so glad that I found this thread… not sure how I missed the link to the github mirror on the home page. I’m also a big git/hg fan because of the pull request functionality. So glad this exists. Thanks, stopiccot, for getting this set up.

Do you know a good merge tool for git? I’ve recently used github for windows and it was horrible. End-of-line changes were treated like any other and I had to manually find conflict annotations in all files. No graphical pick-this-or-that that is available in TortoiseSVN.

I generally liked github, ability to comment commits or even specific lines is great. Some commands are counter-intuitive and there is probably no GUI that is good enough (that is I don’t have to use CLI in typical situations; Githubs for Windows is quite far from enough despite its good reputation).

At my job, I’ve been using github for months to manage a ~100kloc project, and we rarely have merge conflicts. The pull requests on git are expected to automatically merge. Pulling the newest code from the repository to your local branch may cause an occasional conflict (maybe more if you’re doing heavy refactoring), but the pull requests to the master branch are expected to automatically merge. If they can’t be automatically merged, github will tell you, and you just don’t approve them until the developer who submitted the pull request fixes it.

I’ve not seen a pick-this-or-that for git, and I agree, it can be pretty annoying to have to manually go through all the files that couldn’t be automatically merged. Keeping source files fairly small and submitting a pull request for each feature (instead of adding a dozen at a time) helps to prevent merge issues all around, though.


EOLs must be configured locally. Yes it may be a problem. (BTW in VCMI repo EOL are not configured too and it`s annoying sometimes)

Re: merge tools

One of my teammates recommends kdiff3 for git merges. Other popular ones, according to a quick Google search, are DiffMerge and Beyond Compare. So, you can get the side-by-side this-or-that capability with git, it’s just not built in.


You can try Code Compare (there is free version), Meld (open source, but kind of difficult to set-up on Windows) or Araxis Merge (not free, but it was great back in the days I wast used it) .

TortoiseGit has the same diff tool as TortoiseSVN, doesn’t it?

A user perspective - just to share, I tried the svn co to checkout the vcmi repo. but was unable (svn at some point keeps/kept hanging) . with the git clone I was able to d/l the whole repo. in a jiffy.

shirish, AFAIR you are the first one unable to checkout our SVN repo. Maybe sourceforge had a little downtime?

Some time passed, have you changed your mind perhaps about git?
I’ve created two pull requests to the github mirror, you can see how easy it is to hop-on and help out with a project that you’re not a member of.
There are simply many more advantages to git over svn.
Git is integrated into all major IDEs (usually with plugins): ms vs, qt creator, eclipse, you name it. For windows you have all the GUI you would like (although I don’t bother with graphical clients, so I can’t really have any opinion on them): TortoiseGIT, github’s client, msysgit (I believe it ships with gitk), SmartGit, Git Extensions.
Regarding diff/merge tools, I don’t quite see the problem here - can’t you just use whatever you’re used to? Simply set it as your default tool and that’s all. If you don’t have any, you can try (g)vim + fugitive plugin.
If you need any git-related help, I hope I can answer your questions.
Thank you

Well, we are on Git already - at least I started to use this view since Sourceforge Trac is gone :frowning:

This is only a read-only mirror (from what I can see), you still have to go through svn to get the code “out there”.
Are you considering swtiching to git as your main repository?
Pull requests, instant logs/blames, offline commits, local branches, merges done right… all that is within your reach :wink:
Also, found some more git clients, one that i might even be interested in trying out, from atlassian (guys that brought jira and some other tools):

yes, migration to Git is something we consider and I am generally supportive. Git provides better support for several important use-cases. However, there is no strong sentiment to move among VCMI developers. (At least I haven’t heard any.) There is also no single incentive strong enough to make me pursue this on my own. And migration is a cost — of my time to do the moving and of developers needing to learn how to use a new VCS.

I believe that sooner or later we will move to Git. I have however not such plans for immediate future. Feedback from other developers might change this.

The one thing is a decision of SVN to Git transition, the another thing is selecting a hosting service. I don’t know if Github is such an obvious choice. * There are many providers, we should compare them and pick wisely. We will likely be stuck with it for a long time.

I find it very annoying to use stand-alone VCS client applications. You listed as a Git feature an instant blames. However, with such clients it is by no means “instant”. I need to leave IDE, click through another window, search for the file I want to have annotated, look for the blame command… and then scroll the file to the point I was then. Gosh, by that point I don’t remember what I wanted to check. If I had a proper Git plugin in the VS I would just pressed a keyboard shortcut to annotate the file I’m currently viewing. This is what I call instant.

Microsoft has added built-in Git support in VS 2013 (and similar plugin for 2012) and I had high hopes in it. It is really great when it works. Yet, it misses important features (blame, stash, etc.) and feels like an alpha. It is still very nice as a addition to other tools. I use it when I can, falling back to Tortoise Git when I have to. [Tortoise Git is an UI-design abomination, however it allows me to do everything I need.]*