branch closing: referencing open and closed branches/heads
Treat fully closed branches similarly to "inactive" in the output of
'hg branches'. They will be suffixed with "(closed)" where inactive branches
are marked with "(inactive)". If the -a/--active option is given both
inactive and closed branches will not be shown.
Partially closed branches (multiple heads, at least one not closed)
will display the next (tipmost) open head.
Add -a/--active option to "hg heads" which will hide closed heads iff the
option is specified.
In other hg commands, when multiple branch heads exist the branch name will
refer to the tipmost open head, and if none exist, then the tipmost closed
head.
#!/bin/sh
# GNU diff is the reference for all of these results.
hgdiff() {
echo hg diff $@
hg diff --nodates "$@"
}
test_added_blank_lines() {
printf '\nhello world\n\ngoodbye world\n\n' >foo
echo '>>> two diffs showing three added lines <<<'
hgdiff
hgdiff -b
echo '>>> no diffs <<<'
hgdiff -B
hgdiff -Bb
}
test_added_horizontal_space_first_on_a_line() {
printf '\t hello world\ngoodbye world\n' >foo
echo '>>> four diffs showing added space first on the first line <<<'
hgdiff
hgdiff -b
hgdiff -B
hgdiff -Bb
}
test_added_horizontal_space_last_on_a_line() {
printf 'hello world\t \ngoodbye world\n' >foo
echo '>>> two diffs showing space appended to the first line <<<'
hgdiff
hgdiff -B
echo '>>> no diffs <<<'
hgdiff -b
hgdiff -Bb
}
test_added_horizontal_space_in_the_middle_of_a_word() {
printf 'hello world\ngood bye world\n' >foo
echo '>>> four diffs showing space inserted into "goodbye" <<<'
hgdiff
hgdiff -B
hgdiff -b
hgdiff -Bb
}
test_increased_horizontal_whitespace_amount() {
printf 'hello world\ngoodbye\t\t \tworld\n' >foo
echo '>>> two diffs showing changed whitespace amount in the last line <<<'
hgdiff
hgdiff -B
echo '>>> no diffs <<<'
hgdiff -b
hgdiff -Bb
}
test_added_blank_line_with_horizontal_whitespace() {
printf 'hello world\n \t\ngoodbye world\n' >foo
echo '>>> four diffs showing added blank line w/horizontal space <<<'
hgdiff
hgdiff -B
hgdiff -b
hgdiff -Bb
}
test_added_blank_line_with_other_whitespace() {
printf 'hello world\n \t\ngoodbye world \n' >foo
echo '>>> three diffs showing added blank line w/other space <<<'
hgdiff
hgdiff -B
hgdiff -b
hgdiff -Bb
}
test_whitespace_changes() {
printf 'helloworld\ngoodbye\tworld \n' >foo
echo '>>> four diffs showing changed whitespace <<<'
hgdiff
hgdiff -B
hgdiff -b
hgdiff -Bb
hgdiff -w
}
test_whitespace_changes_and_blank_lines() {
printf 'helloworld\n\n\n\ngoodbye\tworld \n' >foo
echo '>>> five diffs showing changed whitespace <<<'
hgdiff
hgdiff -B
hgdiff -b
hgdiff -Bb
hgdiff -w
hgdiff -wB
}
hg init
printf 'hello world\ngoodbye world\n' >foo
hg ci -Amfoo -ufoo -d '0 0'
test_added_blank_lines
test_added_horizontal_space_first_on_a_line
test_added_horizontal_space_last_on_a_line
test_added_horizontal_space_in_the_middle_of_a_word
test_increased_horizontal_whitespace_amount
test_added_blank_line_with_horizontal_whitespace
test_added_blank_line_with_other_whitespace
test_whitespace_changes
test_whitespace_changes_and_blank_lines