threads / patch / 34947

patchcontacts: allow execution from other directories

Subject: [PATCH] contacts: allow execution from other directories

## tl;dr

2 messages between Sep 17, 2013 and Sep 17, 2013. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Thomas Gummerer· Sep 17, 2013, 12:50 UTC · lore

Currently git-contacts only works if it is executed from the top level of the git repository. Enable the execution in sub directories of that repository.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
---
I have no experience in perl, so there may be nicer implementations.  It works when tested manually.
 contrib/contacts/git-contacts | 3 +++
 1 file changed, 3 insertions(+)
Show changes to contrib/contacts/git-contacts +3 −0
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts
index fb6429b..32f03fc 100755
--- a/contrib/contacts/git-contacts
+++ b/contrib/contacts/git-contacts
@@ -61,6 +61,9 @@ sub import_commits {
 sub get_blame {
 	my ($commits, $source, $from, $ranges) = @_;
 	return unless @$ranges;
+	my $git_dir = `git rev-parse --show-toplevel`;
+	chomp($git_dir);
+	$source = $git_dir . '/' . $source;
 	open my $f, '-|',
 		qw(git blame --porcelain -C),
 		map({"-L$_->[0],+$_->[1]"} @$ranges),
-- 
1.8.4.535.g7b94f8e.dirty
Eric Sunshine· Sep 17, 2013, 16:44 UTC · re: Thomas Gummerer · lore

Re: [PATCH] contacts: allow execution from other directories

On Tue, Sep 17, 2013 at 8:50 AM, Thomas Gummerer <t.gummerer@gmail.com> wrote:
> Currently git-contacts only works if it is executed from the top level
> of the git repository.  Enable the execution in sub directories of that
> repository.

Thanks. This was on my to-do list but fell off my radar when I accidentally deleted the to-do list (which, oddly, was not under version control).

I have a patch in my local tree accomplishing the same thing, but in a less expensive manner. I'll post it a bit later today for review.

Show 25 quoted lines
> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
> ---
>
> I have no experience in perl, so there may be nicer implementations.  It works when tested manually.
>
>  contrib/contacts/git-contacts | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts
> index fb6429b..32f03fc 100755
> --- a/contrib/contacts/git-contacts
> +++ b/contrib/contacts/git-contacts
> @@ -61,6 +61,9 @@ sub import_commits {
>  sub get_blame {
>         my ($commits, $source, $from, $ranges) = @_;
>         return unless @$ranges;
> +       my $git_dir = `git rev-parse --show-toplevel`;
> +       chomp($git_dir);
> +       $source = $git_dir . '/' . $source;
>         open my $f, '-|',
>                 qw(git blame --porcelain -C),
>                 map({"-L$_->[0],+$_->[1]"} @$ranges),
> --
> 1.8.4.535.g7b94f8e.dirty
>

← back to recent threads