[icu-support] [action required] ICU GitHub Rebased

3 views
Skip to first unread message

Shane Carr

unread,
Sep 27, 2018, 8:13:02 PM9/27/18
to icu-s...@lists.sourceforge.net
If you do not have your own fork of the ICU GitHub repository, you can stop reading now.

---

Dear ICU developers,

In order to enforce a common commit message style on all commits, ICU-TC decided to rewrite history in the GitHub respository to fix malformed messages since the SVN transition.  The change has been pushed as of this afternoon.

If you have a fork, you will need to update it to the new master branch.

To help transition, we made two branches, which have identical content and can be used for clean switching.  We will delete them in a few weeks:
  • pre63-old-master: the head before the switch.
  • pre63-new-master: the equivalent commit after the switch.
What follows are the instructions for updating your forks.

Prerequisite: if you haven't already, add unicode-org/icu as a remote named "upstream":

$ git remote add upstream git@...3101...:unicode-org/icu.git

Now, run these commands:

# Your working copy should be clean:
$ git checkout master
$ git status

# Make sure your master is up-to-date:
$ git pull upstream pre63-old-master

# Download the new refs (fetch, not pull):
$ git fetch upstream pre63-new-master

# Here's the big one: reset your master to point to the new one (note the '/' instead of a space):
$ git reset upstream/pre63-new-master

# There should be no changes, since the two refs have identical histories besides commit metadata:
$ git status

# Pull any commits that have been added to master since the rewrite:
$ git pull upstream master

# Force-push to your fork to update your fork:
$ git push -f your-fork master

If you cloned ICU from your fork, then "your-fork" should be "origin".

Here is a shorter but more dangerous version of the above commands (two unsafe commands instead of one):

# You can use these if you're sure that you have no uncommitted or unpushed work:
$ git checkout master
$ git fetch upstream master
$ git reset --hard upstream/master
$ git push -f your-fork master

Now, follow these steps to update any branches you have.  You can do this following either the "safe" or the "unsafe" procedure above.  You need to do this once per branch.  You can see a list by running "git branch".  I use the name "branch-name" for an example branch:

# Open your branch:
$ git checkout branch-name

# Rebase your branch onto the new master:
$ git rebase master

# Force-push your branch to your fork:
$ git push -f your-fork branch-name

If you have multiple clones of the ICU repository, I suggest following these same instructions for all of them, except for the "git push -f" at the end, which you need to do only once per remote branch.

Thanks,
Shane

Reply all
Reply to author
Forward
0 new messages