[109905] trunk/dports/devel/git-core
ciserlohn at macports.org
ciserlohn at macports.org
Wed Aug 21 12:41:39 PDT 2013
Revision: 109905
https://trac.macports.org/changeset/109905
Author: ciserlohn at macports.org
Date: 2013-08-21 12:41:39 -0700 (Wed, 21 Aug 2013)
Log Message:
-----------
git-core: fix problems when using git-svn and subversion 1.8.x repos
Includes the yet unreleased commits:
8ac251b66b952b0eddfa4e5bbf08a3c0ae7dbc0b
4e63dcc86cc77ec86a8d35ff752603a4b44d44a7
9c0810732c50106d1a93866ca3fa1285e07778f1
from upstream (https://github.com/git/git).
It should fix the following errors:
Temp file with moniker 'svn_delta' already in use at Git.pm line 1250
Temp file with moniker 'git_blob' already in use at Git.pm line 1250
when fetching from subversion 1.8.x repositories.
Modified Paths:
--------------
trunk/dports/devel/git-core/Portfile
Added Paths:
-----------
trunk/dports/devel/git-core/files/patch-perl-Git-SVN-Fetcher.pm.diff
trunk/dports/devel/git-core/files/patch-perl-Git.pm.diff
Modified: trunk/dports/devel/git-core/Portfile
===================================================================
--- trunk/dports/devel/git-core/Portfile 2013-08-21 17:21:14 UTC (rev 109904)
+++ trunk/dports/devel/git-core/Portfile 2013-08-21 19:41:39 UTC (rev 109905)
@@ -5,6 +5,7 @@
name git-core
version 1.8.3.4
+revision 1
description A fast version control system
long_description Git is a fast, scalable, distributed open source version \
control system focusing on speed and efficiency.
@@ -183,6 +184,9 @@
depends_run-append port:subversion \
port:p5.12-libwww-perl \
port:p5.12-svn-simple
+ patchfiles-append patch-perl-Git-SVN-Fetcher.pm.diff \
+ patch-perl-Git.pm.diff
+
}
variant bash_completion {
Added: trunk/dports/devel/git-core/files/patch-perl-Git-SVN-Fetcher.pm.diff
===================================================================
--- trunk/dports/devel/git-core/files/patch-perl-Git-SVN-Fetcher.pm.diff (rev 0)
+++ trunk/dports/devel/git-core/files/patch-perl-Git-SVN-Fetcher.pm.diff 2013-08-21 19:41:39 UTC (rev 109905)
@@ -0,0 +1,22 @@
+diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm
+index bd17418..10edb27 100644
+--- a/perl/Git/SVN/Fetcher.pm
++++ b/perl/Git/SVN/Fetcher.pm
+@@ -315,11 +315,13 @@ sub change_file_prop {
+ sub apply_textdelta {
+ my ($self, $fb, $exp) = @_;
+ return undef if $self->is_path_ignored($fb->{path});
+- my $fh = $::_repository->temp_acquire('svn_delta');
++ my $suffix = 0;
++ ++$suffix while $::_repository->temp_is_locked("svn_delta_${$}_$suffix");
++ my $fh = $::_repository->temp_acquire("svn_delta_${$}_$suffix");
+ # $fh gets auto-closed() by SVN::TxDelta::apply(),
+ # (but $base does not,) so dup() it for reading in close_file
+ open my $dup, '<&', $fh or croak $!;
+- my $base = $::_repository->temp_acquire('git_blob');
++ my $base = $::_repository->temp_acquire("git_blob_${$}_$suffix");
+
+ if ($fb->{blob}) {
+ my ($base_is_link, $size);
+
+
Added: trunk/dports/devel/git-core/files/patch-perl-Git.pm.diff
===================================================================
--- trunk/dports/devel/git-core/files/patch-perl-Git.pm.diff (rev 0)
+++ trunk/dports/devel/git-core/files/patch-perl-Git.pm.diff 2013-08-21 19:41:39 UTC (rev 109905)
@@ -0,0 +1,47 @@
+--- a/perl/Git.pm
++++ b/perl/Git.pm
+@@ -61,7 +61,7 @@ require Exporter;
+ remote_refs prompt
+ get_tz_offset
+ credential credential_read credential_write
+- temp_acquire temp_release temp_reset temp_path);
++ temp_acquire temp_is_locked temp_release temp_reset temp_path);
+
+
+ =head1 DESCRIPTION
+@@ -1206,6 +1206,35 @@ sub temp_acquire {
+ $temp_fd;
+ }
+
++=item temp_is_locked ( NAME )
++
++Returns true if the internal lock created by a previous C<temp_acquire()>
++call with C<NAME> is still in effect.
++
++When temp_acquire is called on a C<NAME>, it internally locks the temporary
++file mapped to C<NAME>. That lock will not be released until C<temp_release()>
++is called with either the original C<NAME> or the L<File::Handle> that was
++returned from the original call to temp_acquire.
++
++Subsequent attempts to call C<temp_acquire()> with the same C<NAME> will fail
++unless there has been an intervening C<temp_release()> call for that C<NAME>
++(or its corresponding L<File::Handle> that was returned by the original
++C<temp_acquire()> call).
++
++If true is returned by C<temp_is_locked()> for a C<NAME>, an attempt to
++C<temp_acquire()> the same C<NAME> will cause an error unless
++C<temp_release> is first called on that C<NAME> (or its corresponding
++L<File::Handle> that was returned by the original C<temp_acquire()> call).
++
++=cut
++
++sub temp_is_locked {
++ my ($self, $name) = _maybe_self(@_);
++ my $temp_fd = \$TEMP_FILEMAP{$name};
++
++ defined $$temp_fd && $$temp_fd->opened && $TEMP_FILES{$$temp_fd}{locked};
++}
++
+ =item temp_release ( NAME )
+
+ =item temp_release ( FILEHANDLE )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130821/f1e2d54f/attachment.html>
More information about the macports-changes
mailing list