aboutsummaryrefslogtreecommitdiffstats
path: root/t/106-checkout-works-with-more-than-ten-saved-branches.t
diff options
context:
space:
mode:
authorTeddy Wing2019-12-09 21:24:03 +0100
committerTeddy Wing2019-12-09 21:24:03 +0100
commitf0993eb7d45a414030b15091fe47a08110f71e7f (patch)
tree9876d5ec0811bacf50ca6b2522fca56ea6311ec3 /t/106-checkout-works-with-more-than-ten-saved-branches.t
parent41ad11d720ac4ffab406e36c504517d355160011 (diff)
downloadgit-branch-list-f0993eb7d45a414030b15091fe47a08110f71e7f.tar.bz2
git-branch-list: Fix checkout and drop commands for >10 saved branches
Previously there was a bug when you had 11 or more saved branches. Saved branches 1 and 11 would both get matched by the regex in `branch_by_id`, causing the two branches to be concatenated. This resulted in a checkout error, preventing checkout. When dropping a branch, both in the pair would be dropped, even if only branch #1 was specified. Surround the branch IDs with whitespace to prevent incorrect matches.
Diffstat (limited to 't/106-checkout-works-with-more-than-ten-saved-branches.t')
-rw-r--r--t/106-checkout-works-with-more-than-ten-saved-branches.t100
1 files changed, 100 insertions, 0 deletions
diff --git a/t/106-checkout-works-with-more-than-ten-saved-branches.t b/t/106-checkout-works-with-more-than-ten-saved-branches.t
new file mode 100644
index 0000000..b51c699
--- /dev/null
+++ b/t/106-checkout-works-with-more-than-ten-saved-branches.t
@@ -0,0 +1,100 @@
+#!/usr/bin/env perl -w
+
+use strict;
+
+use Test::More;
+
+use Bin qw($BIN);
+
+chdir 't-git-repo' or die $!;
+
+system('git branch one');
+ok !$?;
+
+system("$BIN save one");
+ok !$?;
+
+system('git branch two');
+ok !$?;
+
+system("$BIN save two");
+ok !$?;
+
+system('git branch three');
+ok !$?;
+
+system("$BIN save three");
+ok !$?;
+
+system('git branch four');
+ok !$?;
+
+system("$BIN save four");
+ok !$?;
+
+system('git branch five');
+ok !$?;
+
+system("$BIN save five");
+ok !$?;
+
+system('git branch six');
+ok !$?;
+
+system("$BIN save six");
+ok !$?;
+
+system('git branch seven');
+ok !$?;
+
+system("$BIN save seven");
+ok !$?;
+
+system('git branch eight');
+ok !$?;
+
+system("$BIN save eight");
+ok !$?;
+
+system('git branch nine');
+ok !$?;
+
+system("$BIN save nine");
+ok !$?;
+
+system('git branch ten');
+ok !$?;
+
+system("$BIN save ten");
+ok !$?;
+
+system('git branch eleven');
+ok !$?;
+
+system("$BIN save eleven");
+ok !$?;
+
+
+system("$BIN 1");
+ok !$?;
+
+my $current_branch = qx(git rev-parse --abbrev-ref HEAD);
+is $current_branch, 'eleven
+';
+
+
+system("$BIN 11");
+ok !$?;
+
+$current_branch = qx(git rev-parse --abbrev-ref HEAD);
+is $current_branch, 'one
+';
+
+
+# Teardown
+system('git checkout master');
+system("$BIN clear");
+system('git branch -d one two three four five six seven eight nine ten eleven');
+
+
+done_testing;