Mercurial > hg
changeset 40575:fb490d798be0
share: reload repo after adjusting it in postshare()
When sharing a repo that's using remotefilelog, the update that happens
at the end of the `hg share` call does not see the remote repo path
that's copied in hg.postshare(). This patch reloads the repo after
hg.postshare() to address that.
This changes a subrepo test case. Note that `hg share -U; hg co tip`
worked there before, so I don't see see why `hg share` should fail. I
also don't know what a "locally referenced subrepo". So maybe this is
fixing a bug? Hopefully it's not breaking something someone actually
cares about at least. Maybe someone who knows and cares about subrepos
can review this.
Differential Revision: https://phab.mercurial-scm.org/D5251
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 09 Nov 2018 10:46:02 -0800 |
parents | 17f21047a232 |
children | 85bf93def065 |
files | mercurial/hg.py tests/test-remotefilelog-share.t tests/test-subrepo-recursion.t |
diffstat | 3 files changed, 29 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hg.py Fri Nov 09 09:36:16 2018 -0800 +++ b/mercurial/hg.py Fri Nov 09 10:46:02 2018 -0800 @@ -270,6 +270,7 @@ }) postshare(srcrepo, r, defaultpath=defaultpath) + r = repository(ui, dest) _postshareupdate(r, update, checkout=checkout) return r
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-remotefilelog-share.t Fri Nov 09 10:46:02 2018 -0800 @@ -0,0 +1,24 @@ + $ . "$TESTDIR/remotefilelog-library.sh" + + $ cat >> $HGRCPATH <<EOF + > [extensions] + > remotefilelog= + > share= + > EOF + + $ hg init master + $ cd master + $ cat >> .hg/hgrc <<EOF + > [remotefilelog] + > server=True + > EOF + $ echo x > x + $ hg commit -qAm x + + $ cd .. + + + $ hgcloneshallow ssh://user@dummy/master source --noupdate -q + $ hg share source dest + updating working directory + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-subrepo-recursion.t Fri Nov 09 09:36:16 2018 -0800 +++ b/tests/test-subrepo-recursion.t Fri Nov 09 10:46:02 2018 -0800 @@ -560,15 +560,16 @@ update: 4 new changesets (update) Sharing a local repo without the locally referenced subrepo (i.e. it was never -updated from null), fails the same as a clone operation. +updated from null) works, but clone fails. $ hg --config progress.disable=True clone -U ../empty ../empty2 $ hg --config extensions.share= --config progress.disable=True \ > share ../empty2 ../empty_share updating working directory - abort: repository $TESTTMP/empty2/foo not found! - [255] + sharing subrepo foo from $TESTTMP/empty/foo + sharing subrepo foo/bar from $TESTTMP/empty/foo/bar + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg --config progress.disable=True clone ../empty2 ../empty_clone updating to branch default