Subject: [ANN] First beta: Git export with hardlinks

From: Thomas Koch <[email-masked]>
Date: Wed, 13 Feb 2013 14:17:21 +0100

Hi,

my git_export_hardlink command should now be in a usable state. I'd appreciate 
any feedback: https://github.com/thkoch2001/git_export_hardlinks

I still have to choose a license: BSD/GPL/?

Jeff King:

> It looks like you create the sha1->path mapping by asking the user to
> provide <tree_sha1>,<path> pairs, and then assuming that the exported
> tree at <path> exactly matches <tree_sha1>. Which it would in the
> workflow you've proposed, but it is also easy for that not to be the
> case (e.g., somebody munges a file in <path> after it has been
> exported).
> 
> So it's a bit dangerous as a general purpose tool, IMHO. It's also a
> slight pain in that you have to keep track of the tree sha1 for each
> exported path somehow.
You're right. I'd run a git reset --hard after each export to guarantee a 
pristine export.

The tree sha1 of the exported tree might be part of the folder name of the 
export or in some meta file related to the export, like

/deployments
  /2012-03-05_14-23-02_0b96bf5f72d2c282b31726b3fbff279a89220b15
    /export <- exported tree goes here
    /meta  <- git config file holding all relevant metadata: (who, when, tree,
                  commit, ref)
    /index <- git index file corresponding to the exported tree (maybe?)
  
Regards,

Thomas Koch, http://www.koch.ro