chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f466135
)
Dgit.pm: git_for_each_ref: Provide optional $git_dir argument
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 31 May 2015 10:47:18 +0000
(11:47 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 31 May 2015 11:58:16 +0000
(12:58 +0100)
Debian/Dgit.pm
patch
|
blob
|
history
diff --git
a/Debian/Dgit.pm
b/Debian/Dgit.pm
index 32c2bc5673cad88ac87f1e569fa2a0518a5cf443..48aae188560ddc825351b2cd09d0d8cebc0e475d 100644
(file)
--- a/
Debian/Dgit.pm
+++ b/
Debian/Dgit.pm
@@
-188,12
+188,15
@@
sub git_rev_parse ($) {
return cmdoutput qw(git rev-parse), "$_[0]~0";
}
return cmdoutput qw(git rev-parse), "$_[0]~0";
}
-sub git_for_each_ref ($$) {
- my ($pattern,$func) = @_;
+sub git_for_each_ref ($$
;$
) {
+ my ($pattern,$func
,$gitdir
) = @_;
# calls $func->($objid,$objtype,$fullrefname,$reftail);
# $reftail is RHS of ref after refs/[^/]+/
# breaks if $pattern matches any ref `refs/blah' where blah has no `/'
my @cmd = (qw(git for-each-ref), $pattern);
# calls $func->($objid,$objtype,$fullrefname,$reftail);
# $reftail is RHS of ref after refs/[^/]+/
# breaks if $pattern matches any ref `refs/blah' where blah has no `/'
my @cmd = (qw(git for-each-ref), $pattern);
+ if (defined $gitdir) {
+ @cmd = ('sh','-ec','cd "$1"; shift; exec "$@"','x', $gitdir, @cmd);
+ }
open GFER, "-|", @cmd or die $!;
debugcmd "|", @cmd;
while (<GFER>) {
open GFER, "-|", @cmd or die $!;
debugcmd "|", @cmd;
while (<GFER>) {