aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2019-12-09 21:35:33 +0100
committerTeddy Wing2019-12-09 21:35:33 +0100
commitad5255d97b69b6f8434920fbc31747dac4a81060 (patch)
tree9876d5ec0811bacf50ca6b2522fca56ea6311ec3
parent41ad11d720ac4ffab406e36c504517d355160011 (diff)
parentf0993eb7d45a414030b15091fe47a08110f71e7f (diff)
downloadgit-branch-list-ad5255d97b69b6f8434920fbc31747dac4a81060.tar.bz2
Merge branch 'fix-operations-when-there-are-more-than-ten-saved-branches'
-rwxr-xr-xgit-branch-list4
-rw-r--r--t/106-checkout-works-with-more-than-ten-saved-branches.t100
-rw-r--r--t/107-drop-works-with-more-than-ten-saved-branches.t100
3 files changed, 202 insertions, 2 deletions
diff --git a/git-branch-list b/git-branch-list
index 7cd1295..fca335e 100755
--- a/git-branch-list
+++ b/git-branch-list
@@ -130,8 +130,8 @@ function branch_by_id () {
local id="$1"
local branch=$(list_branches |
- tr -d ' ' |
- fgrep "$id " |
+ tr -s ' ' |
+ fgrep " $id " |
cut -d ' ' -f 2)
echo "$branch"
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;
diff --git a/t/107-drop-works-with-more-than-ten-saved-branches.t b/t/107-drop-works-with-more-than-ten-saved-branches.t
new file mode 100644
index 0000000..374f49b
--- /dev/null
+++ b/t/107-drop-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 drop 1");
+ok !$?;
+
+my $branch_list = qx($BIN);
+is $branch_list, ' 1 ten
+ 2 nine
+ 3 eight
+ 4 seven
+ 5 six
+ 6 five
+ 7 four
+ 8 three
+ 9 two
+ 10 one
+';
+
+
+# Teardown
+system("$BIN clear");
+system('git branch -d one two three four five six seven eight nine ten eleven');
+
+
+done_testing;