[PATCH v2 1/3] send-email: allow send-email to run outside a repo
- From
Jay Soffian <jaysoffian@gmail.com>
- Date
- Feb 15, 2009, 04:32 UTC
- Message-ID
- <1234672335-54321-2-git-send-email-jaysoffian@gmail.com>
- In-Reply-To
- <1234672335-54321-1-git-send-email-jaysoffian@gmail.com>
send-email is supposed to be able to run from outside a repo. This ability was broken by commits caf0c3d6 (make the message file name more specific) and 5df9fcf6 (interpret unknown files as revision lists).
This commit provides a fix for both.
Signed-off-by: Jay Soffian <jaysoffian@gmail.com> --- Junio,
I think you have this one applied already, but I don't currently in next nor pu, so I rebased it on next. I also put it first in the series per your request.
j.
git-send-email.perl | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl index 77ca8fe..9dad100 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -23,7 +23,7 @@ use Getopt::Long; use Text::ParseWords; use Data::Dumper; use Term::ANSIColor; -use File::Temp qw/ tempdir /; +use File::Temp qw/ tempdir tempfile /; use Error qw(:try); use Git; @@ -156,7 +156,10 @@ if ($@) { # Behavior modification variables my ($quiet, $dry_run) = (0, 0); my $format_patch; -my $compose_filename = $repo->repo_path() . "/.gitsendemail.msg.$$"; +my $compose_filename = ($repo ? + tempfile(".gitsendemail.msg.XXXXXX", DIR => $repo->repo_path()) : + tempfile(".gitsendemail.msg.XXXXXX", DIR => "."))[1]; + # Handle interactive edition of files. my $multiedit; @@ -267,6 +270,9 @@ unless ($rc) { usage(); } +die "Cannot run git format-patch from outside a repository\n" + if $format_patch and not $repo; + # Now, let's fill any that aren't set in with defaults: sub read_config { @@ -404,6 +410,7 @@ if (@alias_files and $aliasfiletype and defined $parse_alias{$aliasfiletype}) { # returns 1 if the conflict must be solved using it as a format-patch argument sub check_file_rev_conflict($) { + return unless $repo; my $f = shift; try { $repo->command('rev-parse', '--verify', '--quiet', $f); @@ -445,6 +452,8 @@ while (defined(my $f = shift @ARGV)) { } if (@rev_list_opts) { + die "Cannot run git format-patch from outside a repository\n" + unless $repo; push @files, $repo->command('format-patch', '-o', tempdir(CLEANUP => 1), @rev_list_opts); }
-- 1.6.2.rc0.251.g344d