Discussion:
[thg-dev] Pushing a new branch and a new head at once fails
Schueler Nikolaus (LQKG IT RDS)
2012-05-10 07:51:27 UTC
Permalink
Hi all,

We found the following problem in THG:

Pushing a new branch and a new head at once fails. The reason is that TortoiseHg omits the neccessary force option.

How to reproduce:

Create a fresh repo master, add and commit a file in it.
Clone it twice, say to child1 and child2.
In child1, create a changeset, for example by adding and committing another file. Push that change.
In child2, do not pull that change. Instead, create a new change and a new branch:
Create and add another file. Commit it on a new branch, for example mybranch.
Update to the revision that you were on before the previous step.
Merge the head of the new branch and the current revision.
Try to push.

When you check for outgoing changes, there should be two of them. If you try to push now, you first get an error message indicating that pushing has to force a new branch in master. If you confirm, push is executed with the --new-branch option.

Next an error is displayed, saying that pushing would create a new remote head. If you confirm, push is executed without the --force option that would be needed here. And then the iteration begins: If you confirm, you get the same error again. (One interesting thing is that every execution of the command contains one more instance of the --new-branch option.)

A workaround is to set the force option for push manually.

Regards

Nik
Yuya Nishihara
2012-05-11 14:44:39 UTC
Permalink
Post by Schueler Nikolaus (LQKG IT RDS)
Pushing a new branch and a new head at once fails.
The reason is that TortoiseHg omits the neccessary force option.
Create a fresh repo master, add and commit a file in it.
Clone it twice, say to child1 and child2.
In child1, create a changeset, for example by adding and committing another file. Push that change.
Create and add another file. Commit it on a new branch, for example mybranch.
Update to the revision that you were on before the previous step.
Merge the head of the new branch and the current revision.
Try to push.
When you check for outgoing changes, there should be two of them.
If you try to push now, you first get an error message indicating that pushing
has to force a new branch in master. If you confirm, push is executed with the
--new-branch option.
Next an error is displayed, saying that pushing would create a new remote head.
If you confirm, push is executed without the --force option that would be needed here.
And then the iteration begins: If you confirm, you get the same error again.
"push" should fail at this point, but it happens to show "new branch" confirmation
repeatedly, which is bug.
Post by Schueler Nikolaus (LQKG IT RDS)
(One interesting thing is that every execution of the command contains one more
instance of the --new-branch option.)
oops.

I found a bug report:
https://bitbucket.org/tortoisehg/thg/issue/1615/unable-to-push-new-version

Regards,

Loading...