c835166a7c
This is a new git subcommand, that does a generic union merge operation between two refs, storing the result in a branch. It operates efficiently without touching the working tree. It does need to write out a temporary index file, and may need to write out some other temp files as well. This could be useful for anything that stores data in a branch, and needs to merge changes into that branch without actually checking the branch out. Since conflict handling can't be done without a working copy, the merge type is always a union merge, which is fine for data stored in log format (as git-annex does), or in non-conflicting files (as pristine-tar does). This probably belongs in git proper, but it will live in git-annex for now. --- Plan is to move .git-annex/ to a git-annex branch, and use git-union-merge to handle merging changes when pulling from remotes. Some preliminary benchmarking using real .git-annex/ data indicates that it's quite fast, except for the "git add" call, which is as slow as "git add" tends to be with a big index.
18 lines
188 B
Text
18 lines
188 B
Text
*.hi
|
|
*.o
|
|
test
|
|
configure
|
|
SysConfig.hs
|
|
git-annex
|
|
git-annex-shell
|
|
git-union-merge
|
|
git-annex.1
|
|
git-annex-shell.1
|
|
git-union-merge.1
|
|
doc/.ikiwiki
|
|
html
|
|
*.tix
|
|
.hpc
|
|
Touch.hs
|
|
StatFS.hs
|
|
Remote/S3.hs
|