# HG changeset patch # User Ryan McElroy <rmcel...@fb.com> # Date 1519041052 28800 # Mon Feb 19 03:50:52 2018 -0800 # Node ID 0cf83d6117fa918a8a9f6da6bd9747e09241de2a # Parent b1949aca17c6456ba1a7599e9ca121d269fb1ce6 tests: test various combinations of repos with and without extension
Cases from sandcastle make it clear that there are circumstances where a one local repo talks to another local repo, one with remotenames enabled and the other without remotenames enabled, that crashes can happen. Let's add a test case to find some of these so we can prove they are fixed. diff --git a/tests/test-remotenames-on-and-off.t b/tests/test-remotenames-on-and-off.t new file mode 100644 --- /dev/null +++ b/tests/test-remotenames-on-and-off.t @@ -0,0 +1,64 @@ +iSet up global extensions + $ cat >> $HGRCPATH <<EOF + > [extensions] + > rebase= + > EOF + +Create a repo without remotenames + $ hg init off + $ cd off + $ echo a > a + $ hg ci -qAm a + $ cd .. + +Clone repo and turn remotenames on + $ hg clone off on + updating to branch default + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cat >> on/.hg/hgrc <<EOF + > [extensions] + > remotenames= + > EOF + +Ensure no crashes when working from repo with remotenames on + $ hg -R off bookmark foo + $ cd on + + $ hg pull + pulling from $TESTTMP/off + searching for changes + no changes found + + $ hg push --to bar --create + pushing rev cb9a9f314b8b to destination $TESTTMP/off bookmark bar + searching for changes + no changes found + exporting bookmark bar + [1] + + $ hg pull --rebase + pulling from $TESTTMP/off + searching for changes + no changes found + + $ cd .. + +Check for crashes when working from repo with remotenames off + $ cd off + + $ hg pull ../on 2>&1 | grep Error + AttributeError: 'localrepository' object has no attribute '_remotenames' + + $ cat >> .hg/hgrc <<EOF + > [paths] + > default = $TESTTMP/on + > EOF + + $ hg pull 2>&1 | grep Error + AttributeError: 'localrepository' object has no attribute '_remotenames' + + $ hg push 2>&1 | grep Error + AttributeError: 'localrepository' object has no attribute '_remotenames' + + $ hg pull --rebase 2>&1 | grep Error + AttributeError: 'localrepository' object has no attribute '_remotenames' _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel