diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/git-union-merge.mdwn | 38 | ||||
-rw-r--r-- | doc/todo/branching.mdwn | 6 |
2 files changed, 40 insertions, 4 deletions
diff --git a/doc/git-union-merge.mdwn b/doc/git-union-merge.mdwn new file mode 100644 index 000000000..ac8e8f7a9 --- /dev/null +++ b/doc/git-union-merge.mdwn @@ -0,0 +1,38 @@ +# NAME + +git-union-merge - Join branches together using a union merge + +# SYNOPSIS + +git union-merge branch ref ref + +# DESCRIPTION + +Does a union merge between two refs, storing the result in the +specified branch. + +The union merge will always succeed, but assumes that files can be merged +simply by concacenating together lines from all the oldrefs, in any order. +So, this is useful only for branches containing log-type data. + +That this does not touch the checked out working copy. It operates +entirely on git refs and branches. + +# EXAMPLE + + git union-merge git-annex git-annex origin/git-annex + +Merges the current git-annex branch, and a version from origin, +storing the result in the git-annex branch. + +# BUGS + +File modes are not currently merged. + +# AUTHOR + +Joey Hess <joey@kitenet.net> + +<http://git-annex.branchable.com/> + +Warning: this page is automatically made into a man page via [mdwn2man](http://git.ikiwiki.info/?p=ikiwiki;a=blob;f=mdwn2man;hb=HEAD). Edit with care diff --git a/doc/todo/branching.mdwn b/doc/todo/branching.mdwn index 9c44c03fe..37e7b6edd 100644 --- a/doc/todo/branching.mdwn +++ b/doc/todo/branching.mdwn @@ -148,10 +148,8 @@ problem generically. Something like this: * For remotes, there are also `origin/B`, `otherremote/B`, etc. * To merge two branches `B` and `foo/B`, construct a merge commit that makes each file have all lines that were in either version of the file, - with duplicates removed (probably). Do this without checking out a tree, - or using a temporary directory. (One easy but expensive way is to just - check out the branch to a temp dir, union merge into it, and remove the - temp dir ... but it should be possible to do it without using a temp dir.) + with duplicates removed (probably). Do this without checking out a tree. + -- now implemented as git-union-merge * As a `post-merge` hook, merge `*/B` into `B`. This will ensure `B` is always up-to-date after a pull from a remote. * When pushing to a remote, nothing need to be done, except ensure |