mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
fa1c4e5ebe
Many tests didn't change back from subdirectories at the end of the tests ... and they don't have to. The missing 'cd ..' could always be added when another test case is added to the test file. This change do that tests (99.5%) consistently end up in $TESTDIR where they started, thus making it simpler to extend them or move them around.
172 lines
2.6 KiB
Perl
172 lines
2.6 KiB
Perl
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> graphlog=
|
|
> rebase=
|
|
>
|
|
> [alias]
|
|
> tlog = log --template "{rev}: '{desc}' {branches}\n"
|
|
> tglog = tlog --graph
|
|
> EOF
|
|
|
|
|
|
$ hg init a
|
|
$ cd a
|
|
|
|
$ echo a > a
|
|
$ hg ci -Am A
|
|
adding a
|
|
|
|
$ echo b > b
|
|
$ hg ci -Am B
|
|
adding b
|
|
|
|
$ hg up -q -C 0
|
|
|
|
$ hg mv a a-renamed
|
|
|
|
$ hg ci -m 'rename A'
|
|
created new head
|
|
|
|
$ hg tglog
|
|
@ 2: 'rename A'
|
|
|
|
|
| o 1: 'B'
|
|
|/
|
|
o 0: 'A'
|
|
|
|
|
|
Rename is tracked:
|
|
|
|
$ hg tlog -p --git -r tip
|
|
2: 'rename A'
|
|
diff --git a/a b/a-renamed
|
|
rename from a
|
|
rename to a-renamed
|
|
|
|
Rebase the revision containing the rename:
|
|
|
|
$ hg rebase -s 2 -d 1
|
|
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg tglog
|
|
@ 2: 'rename A'
|
|
|
|
|
o 1: 'B'
|
|
|
|
|
o 0: 'A'
|
|
|
|
|
|
Rename is not lost:
|
|
|
|
$ hg tlog -p --git -r tip
|
|
2: 'rename A'
|
|
diff --git a/a b/a-renamed
|
|
rename from a
|
|
rename to a-renamed
|
|
|
|
$ cd ..
|
|
|
|
|
|
$ hg init b
|
|
$ cd b
|
|
|
|
$ echo a > a
|
|
$ hg ci -Am A
|
|
adding a
|
|
|
|
$ echo b > b
|
|
$ hg ci -Am B
|
|
adding b
|
|
|
|
$ hg up -q -C 0
|
|
|
|
$ hg cp a a-copied
|
|
$ hg ci -m 'copy A'
|
|
created new head
|
|
|
|
$ hg tglog
|
|
@ 2: 'copy A'
|
|
|
|
|
| o 1: 'B'
|
|
|/
|
|
o 0: 'A'
|
|
|
|
Copy is tracked:
|
|
|
|
$ hg tlog -p --git -r tip
|
|
2: 'copy A'
|
|
diff --git a/a b/a-copied
|
|
copy from a
|
|
copy to a-copied
|
|
|
|
Rebase the revision containing the copy:
|
|
|
|
$ hg rebase -s 2 -d 1
|
|
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg tglog
|
|
@ 2: 'copy A'
|
|
|
|
|
o 1: 'B'
|
|
|
|
|
o 0: 'A'
|
|
|
|
Copy is not lost:
|
|
|
|
$ hg tlog -p --git -r tip
|
|
2: 'copy A'
|
|
diff --git a/a b/a-copied
|
|
copy from a
|
|
copy to a-copied
|
|
|
|
$ cd ..
|
|
|
|
|
|
Test rebase across repeating renames:
|
|
|
|
$ hg init repo
|
|
|
|
$ cd repo
|
|
|
|
$ echo testing > file1.txt
|
|
$ hg add file1.txt
|
|
$ hg ci -m "Adding file1"
|
|
|
|
$ hg rename file1.txt file2.txt
|
|
$ hg ci -m "Rename file1 to file2"
|
|
|
|
$ echo Unrelated change > unrelated.txt
|
|
$ hg add unrelated.txt
|
|
$ hg ci -m "Unrelated change"
|
|
|
|
$ hg rename file2.txt file1.txt
|
|
$ hg ci -m "Rename file2 back to file1"
|
|
|
|
$ hg update -r -2
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ echo Another unrelated change >> unrelated.txt
|
|
$ hg ci -m "Another unrelated change"
|
|
created new head
|
|
|
|
$ hg tglog
|
|
@ 4: 'Another unrelated change'
|
|
|
|
|
| o 3: 'Rename file2 back to file1'
|
|
|/
|
|
o 2: 'Unrelated change'
|
|
|
|
|
o 1: 'Rename file1 to file2'
|
|
|
|
|
o 0: 'Adding file1'
|
|
|
|
|
|
$ hg rebase -s 4 -d 3
|
|
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
|
|
|
|
$ hg diff --stat -c .
|
|
unrelated.txt | 1 +
|
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
|
|
$ cd ..
|