[Networkit] [ACTION REQ.] GitHub Migration

Maximilian Vogel maximilian.vogel at student.kit.edu
Tue Jan 3 16:54:01 CET 2017


Hi all,

On 15.12.2016 00:46, Kolja Esders wrote:
> Do not hesitate to ask in case of questions or if you want to point 
> out some potential issues with the migration.
The current mercurial repository is quite huge with about 444MB (current 
numbers might differ as this is from an older snapshot). This amount 
distributes as follows:
- the repository folder .hg/ takes most of it with about 320MB.
- the input/ folder has about 80MB with out.ca-cit-HepTh accounting for 
59MB.
- the actual source directory networkit/ only makes up 4.4MB.

The repository size also matters when cloning/forking the repository. I 
would suggest to use the migration as an opportunity to clean the 
repository in some of the following ways:
- Remove unused stuff (e.g. several scripts on the top level of the 
repository or the scripts folder if this stuff is not actually used)
- Check in the current files as a new git repository to strip the 
mercurial history. This also loses all the branches and opens new 
possibilities regarding the development workflow with git. For archival 
reasons the current repository may be imported via GitHub's importer as 
well.
- Check the input/ folder and make sure only "small" graphs as in file 
size are in there.

I don't know whether the repository size is an issue for any one at all, 
but I always felt that cloning the repository was a nuisance and kind of 
hindered the workflow to develop in forks instead of branches. I think 
this is not only due to algohub's/RhodeCode's performance but to some 
extent also due to the size of the repository. Maybe there are other 
ways to improve on this, I don't know what Mercurial has to offer with 
regards to repository maintenance.

Another suggestion I want to make is to use continuous integration via 
travis. As far as I know it is free for open source projects. Michael 
and I experimented on this already and got NetworKit to compile and run 
the unittests on different configurations (Ubuntu and Mac OS X with both 
g++ and clang++)[1]. The travis configuration file is linked below[2].

On 15.12.2016 09:18, Michael Hamann wrote:
> In general, that's great news as it will make contributions also for 
> me much easier as I'm working with Git locally already. However, could 
> you please explain how you converted the Mercurial commits to Git? I'm 
> asking because I'm using git-remote-hg [0] and the commit ids of the 
> current repository on GitHub are different from the ones I have.
GitHub offers an import assistant. I don't know, what it does exactly, 
but it appears to do quite some work as it took ages when I used it to 
put the NetworKit repository on GitHub. I don't remember the details 
very well, but I think it converts branches from Mercurial to git in a 
different way than git-remote-hg does.

[1]: 
https://travis-ci.org/networkitproject/networkit-mirror/builds/162431669 
The only reason why this is shown as failed is because some unittests fail.
[2]: 
https://github.com/networkitproject/networkit-mirror/blob/Dev/.travis.yml

Best,
Max



More information about the NetworKit mailing list