| Issue 278: | Missing dependency error | |
| 1 person starred this issue and may be notified of changes. | Back to list |
Reported by Väinö Järvelä <vaino.jarvela@gmail.com> on Thu Sep 17 02:58:53 PDT 2009 Source: JIRA GERRIT-279 Affected Version: 2.0.21 This is clearly not a proper way to use git nor gerrit, but when testing gerrit squashing behavior I came up with a bug that breaks the dependency tree of gerrit changes. I have three commits: #1, #2 and #3. I push all three to gerrit for review (Change-Id commit-msg hook is enabled), all changes and their dependencies are registered correctly. I verify, approve and submit the first commit. The next step is to do something horrible: Squash commits #1 and #2, keep Change-Id from commit #1 and push back to gerrit which accepts the changes. The end result is that commit #1 stays submitted, commit #2 is not changed but commit #3 receives a new patch set. #2 depends on #1 and is needed by #3. But if you open #3 it has no dependencies. Now if you try to submit #3, it fails with missing dependencies. I guess the change ids mess up the dependency handling as git uses its own rebased tree when seen from commits #2 and #3. For an easier list of steps to reproduce: $ echo 1 > foo $ git add foo $ git commit -m 'Commit #1' $ echo 2 >> foo $ git commit -a -m 'Commit #2' $ echo 3 >> foo $ git commit -a -m 'Commit #3' $ git push gerrit HEAD:refs/for/master In gerrit, submit 'Commit #1' $ git rebase -i HEAD~3 squash #1 and #2 $ git push gerrit HEAD:refs/for/master Expected behavior: I guess it should detect changes to a submitted commit and reject the push as with non-fast forward push in git.
Nov 21, 2009
(No comment was entered for this change.)
Owner:
s...@google.com
|
|
| ► Sign in to add a comment |
Owner: s...@google.com