[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Merging in Irmin
On 10 March 2015 at 12:14, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote: >>> When merged, the result needs to include the parent, even though it >>> was deleted in one branch and not touched in the other. Can I do this? >> >> Do you mean you want to control which are the parents of a commit you are >> creating, even if the respective contents are not related? >> >> You can manually create a commit by using Irmin.Private.Commit.create[1] and >> save it in the (private) block store with S.Private.Commit.add[2] >> >> Not sure how to expose that nicely to the user though... maybe allowing to >> specify a "parent" optional argument to merge/update/rebase. That would be useful. I've been avoiding the "Private" API so far, but maybe I should start using it. > You can only create a view from one store and apply it in the other: the > history of commit will be kept as expected. See: > > https://github.com/samoht/dog/blob/master/lib/dog.ml#L247 > > You can try to use that to merge views from different branches, not sure how > practical this is though. The basic logic I have is roughly: 1. git checkout base 2. (apply modification) 3. UPDATE=$(git commit-tree -p base) 4. git checkout master 5. git-merge -s custom $UPDATE Where "custom" should be my app-specific merge logic that works on whole trees rather than individual files. Currently, I merge to create a new commit, test it, and then do a fast-forward to update the branch to include the merge if the test passes. But if I can use custom merge code, then it would be OK to merge directly to the branch when my merge code returns, since it will already have had a chance to test it. -- Dr Thomas Leonard http://0install.net/ GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |