Import foreign commit prefixed instead of transplanting the tree #10

Closed
wants to merge 1 commit into
from
Commits on Mar 1, 2014
  1. Import foreign commit prefixed instead of transplanting the tree

    kentfredric committed Mar 1, 2014
    verbatim
    
    This will help avoid problems with rebase.
    
    NOTE: the '.gitrepo' file is still added at the merge stage, and _that_
    file will be lost in subsequent rebases/merges.
    
    Also, the equivalent code for 'pull' is not in place yet.
    
    It relies on knowledge of the internal format specification for the raw
    tree blob object ( what you get if you do `git cat-file tree <TREESHA>` )
    and writes one by hand with a bit of ninja tricks from `perl`'s `pack`
    function.
    
    This is because silly git, unlike everywhere else in git, stores SHA1s
    in TREE blobs in *binary encoding* instead of in Hex. :(
    
    Tree Blob format is
    
      TYPE SPACE FILENAME NULL BINARYSHA1
    
    Where `TYPE` is 040000 for directories/trees.
    
    Signed-off-by: Kent Fredric <kentfredric@gmail.com>