[PATCH] D53414: Add instructions for migrating branches from one git repository to another.

Danila Malyutin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 24 04:47:21 PDT 2018


danilaml added inline comments.


================
Comment at: llvm/docs/Proposals/GitHubMove.rst:934-935
+  $ git log -n1 --pretty="%aD %at" $(git merge-base origin/master my-branch)
+  $ git log -n1 --since <date from old-base-commit> \
+      --author <author from old-base-commit>
+  $ git merge <new-base-commit>
----------------
jlebar wrote:
> fedor.sergeev wrote:
> > I'm afraid this wont work. --since sets a bottom limit for the commits shown with git-log, but git-log starts from the top (HEAD), so in most cases it will be equivalent to git log -n1 --author <xxx>, which is absolutely not whats needed here.
> > 
> > Perhaps doing both --since/--until can do the trick. And if we find the times of commits reliable enough then we can automate it:
> > 
> > merge_base=$(git merge-base origin/master my-branch)
> > merge_time=$(git log -n1 --pretty=%at $merge_base)
> > merge_author=$(git log -n1 --pretty="%an <%ae>" $merge_base)
> > git log -n1 --since="@$merge-time" --until="@$merge_time" --author="$merge_author"
> Added --until.  I decided not to script it because this is not 100% sound, and so I'd rather encourage a human to be in the loop.
How would that deal with multiple merges (not necessarily only with origin/master) with many conflicts? Would that essentially require to manually redo all merges?


https://reviews.llvm.org/D53414





More information about the llvm-commits mailing list