Closed
Bug 1034725
Opened 10 years ago
Closed 4 years ago
Git notes are not merged when multiple source repos push to the same target repo in vcs sync
Categories
(Release Engineering :: General, defect)
Release Engineering
General
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: pmoore, Unassigned)
Details
(Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/2481] )
The problem occurs e.g. in b2g l10n conversion, when multiple source repos push to the same target repo. The problem is that the notes ref currently replaces the previous notes ref, so which ever is the last repo to push to that target repo "wins". Two possible solutions are merging each time: not as trivial as it might at first sound, since the git notes merging does not work (I tested this) because history is not shared between different notes histories in separate source repos - however, it can be done directly with a git merge of the notes tree (see e.g. http://vmiklos.hu/blog/git-notes-merge). However, my preferred solution will be to kill two birds with one stone, where the other bird is a performance gain we can get, by preparing the target repo locally, and then the final push can be with +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/* +refs/notes/commits:refs/notes/commits - i.e. we have a prepared git repo on local filesystem where everything is pushed to, and to push to the target repo, we just have a single push command that runs. The advantage of doing it this way is that we can run the generation of the notes on the local target repo in one fell swoop, and require no notes merging or additional fetching from the target repo we push to between pushes from different source repos. We already have a local target repo (with test_push set to True) in the case of l10n, and can make sure we have this for other sync projects with the same issue. Therefore no extra considerable burden should be placed - instead of iterating through all target remote_repos, and performing the same pushes - the idea would be to do that for the local target repo, and then for the full list of remote repos, to push heads/*, tags/*, notes/commits in one go. Please note we will have to do some checking that the target_repos have the same tag and branch regexes etc. Another alternative is to modify the config setting, so we can associate a remote target repo to a local target repo in the config, and then the remote target repo will inherit the other properties from the local one (e.g. branch and tag mappings, and force setting, etc).
Reporter | ||
Updated•10 years ago
|
Assignee: nobody → pmoore
Reporter | ||
Comment 1•10 years ago
|
||
Please note this is *not* a blocker for Bug 799719 - "(vcs-sync) tracker to retire legacy vcs2vcs" since git notes are a new "nice to have" feature that no other system is currently relying on.
Updated•10 years ago
|
Whiteboard: [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/2481]
Reporter | ||
Updated•9 years ago
|
Assignee: pmoore → nobody
Assignee | ||
Updated•7 years ago
|
Component: Tools → General
Comment 2•4 years ago
|
||
Found in triaging. I think this bug outlived its usefulness. Closing this, feel free to re-open if this occurs again.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•