Hg push tries to push data to repo without any changes
Isaac Jurado
diptongo at gmail.com
Wed Jan 23 19:39:00 UTC 2013
Replying Roman Kamyk jr:
>
> Thanks for answer - but please take a look in the logs - the problem
> occurs even when I do not use surepos, when I clone empty repository,
> hg out doesn't show any changes, and yet hg push tries to push
> something...
Yes, your Hg client is trying to push phases information to the remote
repository, which lacks such data probably because it hasn't received
any push recently or its owner is using an old version of Mercurial
(older than 2.1 at least). Check out the following links:
http://mercurial.selenic.com/wiki/Phases#Phase_Movements
http://mercurial.selenic.com/wiki/Phases#Upgrade_Notes
Another topic is the fact that Mercurial pushes all subrepos recursively
and there is no way to prevent that. Even though it is annoying, it is
probably the simplest and most correct way to handle subrepositories for
now.
What you can do is to make a local clone of the hgshelve and then use
the subrepository path rewriting facility to redirect the push to such
local clone.
In other words:
hg clone https://bitbucket.org/tksoh/hgshelve
cd your-repo
cat <<END >>.hg/hgrc
[subpaths]
^https://bitbucket\.org/tksoh/hgshelve$ = /absolute/path/to/hgshelve
END
Beware to use an absolute path on the right hand side of the equals
sign, otherwise it will be interpreted as a relative path and it will be
concatenated to the main push URL used in the operation.
And please think twice before using subrepositories next time. It is a
handy feature for some situations, but if you don't understand it
completely it can bring you serious problemes like beign unable to
update the working copy.
Regards.
--
Isaac Jurado
"The noblest pleasure is the joy of understanding."
Leonardo da Vinci
More information about the Mercurial
mailing list