My experience level with git:
Would I like to see Vxl move to git:
My initial thought is no, I would rather stick to svn. However, after reading the proposal, I do see benefits that the whole community (and I) can take in the future. Though I never use git before, I do not mind exploring it at my leisure time, as long as there are detailed instructions on how to get started with git and how to get only the head (but not the whole repo) as most VXL developers are used to.
Gehua (Gary) Yang
VXL users and developers,
I'd like to take a survey about the VXL community's familiarity with git
and interest having VXL move from svn to git for version control. See
details of the proposed move below. Please respond to the VXL
maintainers mailing list if you have a strong opinion one way or the
other. Answer the following two questions:
What is you experience level with git?
Some example responses: "none", "know about, but don't use it", "I have
some limited experience with it", "I'm an experienced git user", "I
already working with VXL via git-svn".
Would you like to see VXL move to git?
A simple "+1 for git" or "I'd rather stick with svn" response will
suffice, but feel free to elaborate.
Let's keep further discussion on the maintainer's mailing list. I've
BCC'd this message to vxl-users to allow the broader community to take
part in the survey.
Proposed move of VXL from svn to git
I would like to propose moving VXL from subversion to git for version
control. A subset of VXL developers (including all of us at Kitware)
already develop VXL using git and push changes to sourceforge using
git-svn. Git is a distributed version control system and marks a
substantial change in mindset from subversion (and CVS before it).
If accepted, I (or someone at Kitware) will migrate the current svn
repository to git in a way the preserves all the history, tags, etc.
The repository will continue to be hosted at sourceforge. We will also
update the website and assist others in updating dashboard builds.
Kitware's build and test tools (CMake, CDash, etc.) work well with git
and in fact these tools are all developed in git repositories
While there are many advantages to using git over svn, the primary
reason for suggesting this change now is to make stable release
management easier. Git often involves a branch-and-merge workflow in
which each feature is developed in a separate branch and merged into the
master branch when ready. For this reason, the master branch is
generally much more stable. It becomes easy to then pick which changes
we want to include in the next stable release. We have found at Kitware
that using git makes it much easier to manage stable releases and make
them more often.
I cannot cover all the benefits to git in this e-mail. It is easy to
find many websites discussing them. Briefly a few other notable
1) Each developer has a full copy of the history and most commands do
not require an Internet connection. You can browse the history, make
commits, etc. when you don't have an Internet connection.
2) You can easily make local commits, review all your commits for
errors, revise if needed, and push all commits to the server only when
they are ready.
3) Git maintains both who wrote the patch and who committed it. This
allows a VXL maintainer to review the work of someone without write
access (e.g. a new student) and publish those changes if acceptable. It
also provided a better mechanism for accepting patches from users via
4) Work on separate features can be separated into topic branches.
While I work on my feature I can update from the server and not have to
worry that someone else's changes will break my build.
The only disadvantage I'm aware of with moving to git is the learning
curve associated with getting all developers familiar with git. Git is
an extremely powerful tool with many advanced options. Furthermore, it
requires a total different mindset for thinking about version control.
Git can be very confusing to a beginner, especially someone who has used
the centralized model of subversion and CVS for years. However, once
you really understand git, it makes development so much easier that it
becomes painful to go back to svn or cvs.
There are many other details that need discussion about how we would use
git for VXL. Git allows for many possible workflows. There are also
changes to how testing is done (e.g. which branches should we build for
the dashboard?). I think it is best to leave these discussions until
after it is determined that there is interest in moving to git.
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
Vxl-maintainers mailing list