This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: SVN for src, status?


On Fri, 8 May 2009, Pascal Obry wrote:

> Joseph,
> 
> > How does git handle the key feature for src, sparse checkouts (a single 
> > repository from which you can check out just the parts relevant for 
> > binutils, or GDB, or ..., or everything, and do single commits affecting 
> > various subsets of the directories)?
> 
> Git doesn't support this. You can use submodules for binutils, GDB...
> but it won't allow a single commit affecting the main repository and
> some submodules. But Git does bring lot of nice stuff that Subversion

Then Git is not yet ready for the src repository, in my view, unless you 
can make it look to users like they are running a single commit command to 
the central repository with the details of submodules being hidden in the 
implementation of that command; commits to both BFD and another directory 
using BFD are a very common use case for this repository, and version 
control systems firstly need to make the common cases easy and reduce the 
risk of user error in the common cases.  Checking out just one component 
of src (e.g. binutils or GDB, with their overlapping sets of directories 
and common toplevel), updating such a checkout, and checking in (to the 
central repository) changes across such a checkout, are likely the most 
common use cases.

CVS makes the first easy (whereas SVN might require some sort of script; I 
don't think it's as easy as with CVS), the second rather harder than it 
should be (cvs update doesn't get new directories, update -d gets those 
outside the module you originally checked out, so you need src -> . 
symlinks and to rerun cvs checkout to update properly) and the third easy 
but with error cases that seem common to many version control systems 
(easy to commit in a subdirectory accidentally and so fail to commit the 
changes in other directories, or to fail to "cvs add" new files and commit 
without them and without the version control system warning about this and 
making sure it's what you really wanted).

I'm sure Git brings many features of use to advanced users, but most users 
are not advanced and it should be easy for them to do the common tasks and 
difficult for them to make mistakes in so doing (bearing in mind they may 
not know from extensive experience what the likely mistakes are) without 
the version control system catching them.

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]