Print

Print


On Jan 22, 2009, at 11:41 PM, Peter W. Draper wrote:
>
> I think these are the key arguments for me. Having to hold off on  
> commits
> until "it's ready" always makes me uneasy, it also has the side- 
> effect of
> discouraging atomic commits, so a changeset is generally not very  
> helpful
> to look at when you forget quite why or when some change was made,  
> it's
> hidden amongst a batch of others.
>
> This point may be more important for me as I work with other  
> people's code
> a lot, so understanding the changes is important.
>
> Basically I see this as moving back to the old days when I had my own

Was expecting a "good" to be inserted there somewhere:-)

> One thing that worries me about a switch is how secure the local
> repositories are. Clearly these need backing up, so I need to work  
> out how
> to keep the bare repositories on backed-up filesystems. There's also  
> the
> issue of thirdparty/vendor branches, where are those kept.


Well, in that regard David has as much chance of losing all his work  
from a disk crash now as we would from a disk crash when using a DVCS.  
Although he could set up a cron job to rsync the entire repository to  
JAC or somewhere. Having disk crashes in the middle of developing is  
always going to be an issue.

Vendor branches are interesting in that they work fine but you have to  
make sure that they end up on the master repository just like releases.

See

  http://happygiraffe.net/blog/2008/02/07/vendor-branches-in-git/
  http://sourceware.org/frysk/build/git-fu.html

so you keep your patches on a branch and can merge them in each time  
you get an updated version of the code. And because the thirdparty  
directories do not have .svn directories or anything you can simply  
remove the old tree, untar the new one and the DVCS will know which  
files were removed, which renamed, which added and you can just commit  
it all in one go. Then pull in your upstream local modifications and  
finally merge it all to trunk.

if the vendor happens to be using a git repository you can actually  
add them as a submodule and track a particular release directly....

  http://woss.name/2008/04/11/using-git-submodules-to-track-vendorrails-2/
  http://woss.name/2008/04/09/using-git-submodules-to-track-vendorrails/

-- 
Tim Jenness
Joint Astronomy Centre