Necessary Maintenance #7262
Repair required to art repository on master and develop branches due to faulty tag and merge of v1_12_03
Description
On Tuesday 2014/10/21 at 10:55 CDT, an erroneous tag and merge was made to the main repository's master
and develop
branches. The tag was v1_12_03
.
The changes to be made to the repository will change the origin/master and origin/develop branches to preserve their states at tag time and HEAD
while cleaning up the merge history to retain readability. The v1_12_03
tag will be moved to a new branch v1_12-branch
which will be constructed to allow the code representing the tag to remain identical while allowing the aforementioned cleanup.
If you have a local clone of the repository via any method (e.g. http
or ssh
), please for each clone:
- Make a tarfile backup with (e.g.):
( cd .. ; tar jcf <tarfile> <local-repo-name> )
Do not skip this step unless you like losing work! - If you have not pulled or fetched
origin/develop
ororigin/master
from cdcvs.fnal.gov since before the faulty merge 2014/10/21, then please refrain from doing so until you have been given the all-clear. This is the only action required of you in this case. - If you have, or you think you may have, any local branches with the bad merge in the tree (including develop), you may check with the following command:
git branch -a | grep -v remotes | sed -e 's&\*& &g' | while read branch; do git rev-list "${branch}" | grep -q 41d89bdb99254440fb52d00d79ce8ad6db2991cb && echo "${branch}"; done
- For each branch whose name was printed as a result of the above command (i.e. has the offending merge):
- Commit any local changes you wish to preserve. This includes anything you currently have stashed, since the stash will also be no good after the repair has been made.
- Then, execute the following command to preserve your changes:
git checkout <branch> git format-patch --stdout <first-good-sha1>..<last-good-sha1> > <branch>-rescue.txt
Note the literal..
separating the two SHA1s.git log
orgitk
can help you decide which commits you need to keep.
- Update the metadata for upstream branches:
git fetch origin
- For each branch identified by step (3), when and only when you receive the all clear that the repair has been made:
- If there is a remote tracking branch (e.g.
master
anddevelop
):git checkout <branch> git reset --hard origin/<branch> # If you have a saved patch: git am <branch>-rescue.txt
- If your branch has no remote tracking branch:
git branch -D <branch> git checkout -b <branch> origin/develop # If you have a saved patch: git am <branch>-rescue.txt
- If there is a remote tracking branch (e.g.
- Update the tag:
git fetch --tags
As of right now, there are no published feature branches which include the bad merge commit, so no-one should have to deal with that eventuality.
History
#1 Updated by Christopher Green about 6 years ago
- Description updated (diff)
Update description to include the extra checklist item to fetch the new definition of the tag.
#2 Updated by Christopher Green about 6 years ago
- Status changed from Assigned to Resolved
#3 Updated by Christopher Green about 6 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100