mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
ac26bdeb92
We have a UI bug where toggling a newly added file twice in the curses interface didn't mark it as selected. This test checks that the underlying logic is working as expected, the next patch of the series fixes the UI bug.
204 lines
3.3 KiB
Perl
204 lines
3.3 KiB
Perl
Set up a repo
|
|
|
|
$ cat <<EOF >> $HGRCPATH
|
|
> [ui]
|
|
> interactive = true
|
|
> [experimental]
|
|
> crecord = true
|
|
> crecordtest = testModeCommands
|
|
> EOF
|
|
|
|
$ hg init a
|
|
$ cd a
|
|
|
|
Committing some changes but stopping on the way
|
|
|
|
$ echo "a" > a
|
|
$ hg add a
|
|
$ cat <<EOF >testModeCommands
|
|
> TOGGLE
|
|
> X
|
|
> EOF
|
|
$ hg commit -i -m "a" -d "0 0"
|
|
no changes to record
|
|
$ hg tip
|
|
changeset: -1:000000000000
|
|
tag: tip
|
|
user:
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
|
|
Committing some changes
|
|
|
|
$ cat <<EOF >testModeCommands
|
|
> X
|
|
> EOF
|
|
$ hg commit -i -m "a" -d "0 0"
|
|
$ hg tip
|
|
changeset: 0:cb9a9f314b8b
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: a
|
|
|
|
Committing only one file
|
|
|
|
$ echo "a" >> a
|
|
>>> open('b', 'wb').write("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n")
|
|
$ hg add b
|
|
$ cat <<EOF >testModeCommands
|
|
> TOGGLE
|
|
> KEY_DOWN
|
|
> X
|
|
> EOF
|
|
$ hg commit -i -m "one file" -d "0 0"
|
|
$ hg tip
|
|
changeset: 1:fb2705a663ea
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: one file
|
|
|
|
$ hg cat -r tip a
|
|
a
|
|
$ cat a
|
|
a
|
|
a
|
|
|
|
Committing only one hunk
|
|
|
|
- Untoggle all the hunks, go down to the second file
|
|
- unfold it
|
|
- go down to second hunk (1 for the first hunk, 1 for the first hunkline, 1 for the second hunk, 1 for the second hunklike)
|
|
- toggle the second hunk
|
|
- commit
|
|
|
|
$ echo "x" > c
|
|
$ cat b >> c
|
|
$ echo "y" >> c
|
|
$ mv c b
|
|
$ cat <<EOF >testModeCommands
|
|
> A
|
|
> KEY_DOWN
|
|
> f
|
|
> KEY_DOWN
|
|
> KEY_DOWN
|
|
> KEY_DOWN
|
|
> KEY_DOWN
|
|
> TOGGLE
|
|
> X
|
|
> EOF
|
|
$ hg commit -i -m "one hunk" -d "0 0"
|
|
$ hg tip
|
|
changeset: 2:7d10dfe755a8
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: one hunk
|
|
|
|
$ hg cat -r tip b
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
y
|
|
$ cat b
|
|
x
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
y
|
|
$ hg commit -m "other hunks"
|
|
$ hg tip
|
|
changeset: 3:a6735021574d
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: other hunks
|
|
|
|
$ hg cat -r tip b
|
|
x
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
y
|
|
|
|
Editing patch of newly added file
|
|
|
|
$ cat > editor.sh << '__EOF__'
|
|
> cat "$1" | sed "s/first/very/g" > tt
|
|
> mv tt "$1"
|
|
> __EOF__
|
|
$ cat > newfile << '__EOF__'
|
|
> This is the first line
|
|
> This is the second line
|
|
> This is the third line
|
|
> __EOF__
|
|
$ hg add newfile
|
|
$ cat <<EOF >testModeCommands
|
|
> f
|
|
> KEY_DOWN
|
|
> KEY_DOWN
|
|
> KEY_DOWN
|
|
> e
|
|
> X
|
|
> EOF
|
|
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i -d '23 0' -medit-patch-new
|
|
$ hg tip
|
|
changeset: 4:6a0a43e9eff5
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:23 1970 +0000
|
|
summary: edit-patch-new
|
|
|
|
$ hg cat -r tip newfile
|
|
This is the very line
|
|
This is the second line
|
|
This is the third line
|
|
|
|
$ cat newfile
|
|
This is the first line
|
|
This is the second line
|
|
This is the third line
|
|
|
|
Newly added files can be selected with the curses interface
|
|
|
|
$ hg update -C .
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo "hello" > x
|
|
$ hg add x
|
|
$ cat <<EOF >testModeCommands
|
|
> TOGGLE
|
|
> TOGGLE
|
|
> X
|
|
> EOF
|
|
$ hg st
|
|
A x
|
|
? editor.sh
|
|
? testModeCommands
|
|
$ hg commit -i -m "newly added file" -d "0 0"
|
|
$ hg st
|
|
? editor.sh
|
|
? testModeCommands
|
|
|