-
Notifications
You must be signed in to change notification settings - Fork 616
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #504 from rgburke/status-tracking-info
Show tracking info in tig status
- Loading branch information
Showing
2 changed files
with
180 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
#!/bin/sh | ||
|
||
. libtest.sh | ||
. libgit.sh | ||
|
||
export LINES=10 | ||
|
||
test_setup_work_dir() | ||
{ | ||
create_repo_from_tgz "$base_dir/files/refs-repo.tgz" | ||
|
||
git checkout -b ahead | ||
echo test > test.txt | ||
git add test.txt | ||
git_commit -m "Ahead branch" | ||
git checkout master | ||
|
||
git checkout -b diverged HEAD~2 | ||
echo test > test.txt | ||
git add test.txt | ||
git_commit -m "Diverged branch" | ||
git checkout master | ||
} | ||
|
||
test_case up-to-date-with-remote-master \ | ||
--args='status' <<EOF | ||
On branch master. Your branch is up-to-date with 'origin/master'. | ||
Changes to be committed: | ||
(no files) | ||
Changes not staged for commit: | ||
(no files) | ||
Untracked files: | ||
(no files) | ||
[status] Nothing to update 100% | ||
EOF | ||
|
||
test_case behind-remote-master \ | ||
--args='status' \ | ||
--before="git reset --hard HEAD~2" \ | ||
--after="git reset --hard origin/master" <<EOF | ||
On branch master. Your branch is behind 'origin/master' by 2 commits. | ||
Changes to be committed: | ||
(no files) | ||
Changes not staged for commit: | ||
(no files) | ||
Untracked files: | ||
(no files) | ||
[status] Nothing to update 100% | ||
EOF | ||
|
||
test_case ahead-of-remote-master \ | ||
--args='status' \ | ||
--before="git merge ahead" \ | ||
--after="git reset --hard origin/master" <<EOF | ||
On branch master. Your branch is ahead of 'origin/master' by 1 commit. | ||
Changes to be committed: | ||
(no files) | ||
Changes not staged for commit: | ||
(no files) | ||
Untracked files: | ||
(no files) | ||
[status] Nothing to update 100% | ||
EOF | ||
|
||
test_case diverged-from-remote-master \ | ||
--args='status' \ | ||
--before="git reset --hard diverged" \ | ||
--after="git reset --hard origin/master" <<EOF | ||
On branch master. Your branch and 'origin/master' have diverged, and have 1 and | ||
Changes to be committed: | ||
(no files) | ||
Changes not staged for commit: | ||
(no files) | ||
Untracked files: | ||
(no files) | ||
[status] Nothing to update 100% | ||
EOF | ||
|
||
run_test_cases | ||
|
||
add_exec_prefix() | ||
{ | ||
code="$(cat "$1")" | ||
if [ -n "$code" ]; then | ||
echo "$code" | sed -e 's/^[ ]*//' -e '/^$/d' -e 's/^/:exec @/' | ||
fi | ||
} | ||
|
||
tig_script "all" " | ||
$(for name in $(cat test-cases); do | ||
add_exec_prefix "$name-before" | ||
echo :save-display all-$name.screen | ||
add_exec_prefix "$name-after" | ||
done) | ||
" | ||
|
||
test_tig status | ||
|
||
for name in $(cat test-cases); do | ||
assert_equals "all-$name.screen" < "$name.expected" | ||
done |