Source Code Repository Conventions


Following up on our discussion yesterday during the developers meeting regarding source code repository conventions:

https://wiki.ncsa.illinois.edu/display/NDS/Source+Code+Repository+Conventions

The point has been raised since the meeting that branching is not the same between hg and git.

* git branch != hg branch
* git branches are more like hg bookmarks <-- use these for lightweight development
* hg branches are more heavyweight and the information about them is baked into the commit for all time
* there should be only a very small number of long-lived hg branches in a hg repository


As a bit of an aside, git submodules work differently than hg subrepositories. We are currently using git submodules in at least one of the NDS repositories. I consider this an aside since we don't really need to use submodules (AFAICT).

The main issue is the branching and merging conventions we want to adopt. These conventions (the language we use and the documentation we write) are, on a day-to-day practical level, closely associated with the tools we use and the terminology of those tools. I'm certain either mercurial or git would work for us just fine. It does, however, seem like a good idea to just pick one and go with it.

Please comment.

Various random links that touch on this topics:

* https://docs.python.org/devguide/gitdevs.html#main-differences-between-git-and-hg
* https://jhw.dreamwidth.org/1868.html (pro hg)
* https://felipec.wordpress.com/2013/08/27/analysis-of-hg-and-git-branches/ (pro git)
* https://git-scm.com/book/en/v2/Git-Tools-Submodules
* https://mercurial.selenic.com/wiki/Subrepository


- Mike



Other Mailing lists | Author Index | Date Index | Subject Index | Thread Index