diff options
-rwxr-xr-x | git-branch-list | 4 | ||||
-rw-r--r-- | t/108-works-with-git-worktrees.t | 36 |
2 files changed, 38 insertions, 2 deletions
diff --git a/git-branch-list b/git-branch-list index b70b106..95946f3 100755 --- a/git-branch-list +++ b/git-branch-list @@ -18,8 +18,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -GIT_ROOT=$(git rev-parse --show-toplevel) -DATABASE="${GIT_ROOT}/.git/info/git-branch-list" +GIT_ROOT="$(git rev-parse --git-common-dir)" +DATABASE="${GIT_ROOT}/info/git-branch-list" VERSION=0.1.3 function initialise_database () { diff --git a/t/108-works-with-git-worktrees.t b/t/108-works-with-git-worktrees.t new file mode 100644 index 0000000..b2901c0 --- /dev/null +++ b/t/108-works-with-git-worktrees.t @@ -0,0 +1,36 @@ +#!/usr/bin/env perl -w + +use strict; + +use Test::More; +use File::Path qw(remove_tree); + +use Bin qw($BIN); + +chdir 't-git-repo' or die $!; + +system('git branch a-branch'); +ok !$?; + +system("$BIN save a-branch"); +ok !$?; + +system('git worktree add ../t-git-repo-worktree'); +ok !$?; + +chdir '../t-git-repo-worktree' or die $!; + +my $branch_list = qx($BIN); +is $branch_list, ' 1 a-branch +'; + + +# Teardown +system("$BIN clear"); +chdir '../t-git-repo' or die $!; +remove_tree('../t-git-repo-worktree') or die $!; +system('git checkout master'); +system('git branch -d a-branch'); + + +done_testing; |