<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/perl, branch v2.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-02-05T22:54:15Z</updated>
<entry>
<title>Merge branch 'ew/svn-1.9.0-auth' into maint</title>
<updated>2016-02-05T22:54:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0244713db17523700e97dd3573c819b51cccbcda'/>
<id>urn:sha1:0244713db17523700e97dd3573c819b51cccbcda</id>
<content type='text'>
* ew/svn-1.9.0-auth:
  git-svn: fix auth parameter handling on SVN 1.9.0+
</content>
</entry>
<entry>
<title>git-svn: fix auth parameter handling on SVN 1.9.0+</title>
<updated>2016-01-27T06:30:02Z</updated>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<published>2016-01-16T10:17:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0b6641557ccfdbd855c88b7980c1a24224b83c74'/>
<id>urn:sha1:0b6641557ccfdbd855c88b7980c1a24224b83c74</id>
<content type='text'>
For users with "store-passwords = no" set in the "[auth]" section of
their ~/.subversion/config, SVN 1.9.0+ would fail with the
following message when attempting to call svn_auth_set_parameter:

  Value is not a string (or undef) at Git/SVN/Ra.pm

Ironically, this breakage was caused by r1553823 in subversion:

  "Make svn_auth_set_parameter() usable from Perl bindings."

Since 2007 (602015e0e6ec), git-svn has used a workaround to make
svn_auth_set_parameter usable internally.  However this workaround
breaks under SVN 1.9+, which deals properly with the type mapping
and fails to recognize our workaround.

For pre-1.9.0 SVN, we continue to use the existing workaround for
the lack of proper type mapping in the bindings.

Tested under subversion 1.6.17 and 1.9.3.

I've also verified r1553823 was not backported to SVN 1.8.x:

  BRANCH=http://svn.apache.org/repos/asf/subversion/branches/1.8.x
  svn log -v $BRANCH/subversion/bindings/swig/core.i

ref: https://bugs.debian.org/797705
Cc: 797705@bugs.debian.org
Reported-by: Thierry Vignaud &lt;thierry.vignaud@gmail.com&gt;
Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
Tested-by: Thierry Vignaud &lt;thierry.vignaud@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>git-svn: improve rebase/mkdirs performance</title>
<updated>2015-11-10T01:35:01Z</updated>
<author>
<name>Dair Grant</name>
<email>dair@feralinteractive.com</email>
</author>
<published>2015-11-05T10:26:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=82625748223dd8977f6c1b8cfe53f7353399bd34'/>
<id>urn:sha1:82625748223dd8977f6c1b8cfe53f7353399bd34</id>
<content type='text'>
Processing empty_dir directives becomes extremely slow for svn
repositories with a large enough history.

This is due to using a single hash to store the list of empty
directories, with the expensive step being purging items from
that hash using grep+delete.

Storing directories in a hash of hashes improves the performance
of this purge step and removes a potentially lengthy delay after
every rebase/mkdirs command.

The svn repository with this behaviour has 110K commits with
unhandled.log containing 170K empty_dir directives.

This takes 10 minutes to process when using a single hash, vs
3 seconds with a hash of hashes.

Signed-off-by: Dair Grant &lt;dair@feralinteractive.com&gt;
Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
</content>
</entry>
<entry>
<title>send-email: reduce dependencies impact on parse_address_line</title>
<updated>2015-07-07T21:38:20Z</updated>
<author>
<name>Remi Lespinet</name>
<email>remi.lespinet@ensimag.grenoble-inp.fr</email>
</author>
<published>2015-07-07T13:38:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8d314d7afec5adaaa8e22332e39fe84a39584653'/>
<id>urn:sha1:8d314d7afec5adaaa8e22332e39fe84a39584653</id>
<content type='text'>
parse_address_line had not the same behavior whether the user had
Mail::Address or not. Teach parse_address_line to behave like
Mail::Address.

When the user input is correct, this implementation behaves
exactly like Mail::Address except when there are quotes
inside the name:

  "Jane Do"e &lt;jdoe@example.com&gt;

In this case the result of parse_address_line is:

  With M::A : "Jane Do" e &lt;jdoe@example.com&gt;
  Without   : "Jane Do e" &lt;jdoe@example.com&gt;

When the user input is not correct, the behavior is also mostly
the same.

Unlike Mail::Address, this doesn't parse groups and recursive
commentaries.

Signed-off-by: Remi Lespinet &lt;remi.lespinet@ensimag.grenoble-inp.fr&gt;
Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'svn-maint-fixes' into svn-fixes</title>
<updated>2015-02-26T22:03:57Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-02-26T22:03:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=28ed7b02dd726bcc5c8d3fc316c965a3c0f05c04'/>
<id>urn:sha1:28ed7b02dd726bcc5c8d3fc316c965a3c0f05c04</id>
<content type='text'>
* svn-maint-fixes:
  Git::SVN::*: avoid premature FileHandle closure
  git-svn: fix localtime=true on non-glibc environments
</content>
</entry>
<entry>
<title>Git::SVN::*: avoid premature FileHandle closure</title>
<updated>2015-02-26T22:02:34Z</updated>
<author>
<name>Kyle J. McKay</name>
<email>mackyle@gmail.com</email>
</author>
<published>2015-02-26T13:49:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e426311befe429ad39b47927cd12153b7aa99542'/>
<id>urn:sha1:e426311befe429ad39b47927cd12153b7aa99542</id>
<content type='text'>
Since b19138b (git-svn: Make it incrementally faster by minimizing temp
files, v1.6.0), git-svn has been using the Git.pm temp_acquire and
temp_release mechanism to avoid unnecessary temp file churn and provide
a speed boost.

However, that change introduced a call to temp_acquire inside the
Git::SVN::Fetcher::close_file function for an 'svn_hash' temp file.
Because an SVN::Pool is active at the time this function is called, if
the Git::temp_acquire function ends up actually creating a new
FileHandle for the temp file (which it will the first time it's called
with the name 'svn_hash') that FileHandle will end up in the SVN::Pool
and should that pool have SVN::Pool::clear called on it that FileHandle
will be closed out from under Git::temp_acquire.

Since the only call site to Git::temp_acquire with the name 'svn_hash'
is inside the close_file function, if an 'svn_hash' temp file is ever
created its FileHandle is guaranteed to be created in the active
SVN::Pool.

This has not been a problem in the past because the SVN::Pool was not
being cleared.  However, since dfa72fdb (git-svn: reload RA every
log-window-size, v2.2.0) the pool has been getting cleared periodically
at which point the FileHandle for the 'svn_hash' temp file gets closed.
Any subsequent calls to Git::temp_acquire for 'svn_hash', however,
succeed without creating/opening a new temporary file since it still has
the now invalid FileHandle in its cache.  Callers that then attempt to
use that FileHandle fail with an error.

We avoid this problem by making sure the 'svn_hash' temp file is created
in the same place the 'svn_delta_...' and 'git_blob_...' temp files are
(and then temp_release'd) so that it can be safely used inside the
close_file function without having its FileHandle end up in an SVN::Pool
that gets cleared.

Additionally the Git.pm cat_blob function creates a bidirectional pipe
FileHandle using the IPC::Open2::open2 function.  If that handle is
created too late, it also gets caught up in the SVN::Pool and incorrectly
closed by the SVN::Pool::clear call.  But this only seems to happen with
more recent versions of Perl and svn.

To avoid this problem we add an explicit call to _open_cat_blob_if_needed
before the first call to SVN::Pool-&gt;new_default to make sure the open2
handle does not end up in the SVN::Pool.

Signed-off-by: Kyle J. McKay &lt;mackyle@gmail.com&gt;
Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>git-svn: fix localtime=true on non-glibc environments</title>
<updated>2015-02-26T22:02:34Z</updated>
<author>
<name>Ryuichi Kokubo</name>
<email>ryu1kkb@gmail.com</email>
</author>
<published>2015-02-25T16:04:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=45c956b35731fcbda4cf29fcd1658d9418bec2d1'/>
<id>urn:sha1:45c956b35731fcbda4cf29fcd1658d9418bec2d1</id>
<content type='text'>
git svn uses POSIX::strftime('%s', $sec, $min, ...) to make unix epoch time.
But lowercase %s formatting character is a GNU extention. This causes problem
in git svn fetch --localtime on non-glibc systems, such as msys or cygwin.
Using Time::Local::timelocal($sec, $min, ...) fixes it.

Signed-off-by: Ryuichi Kokubo &lt;ryu1kkb@gmail.com&gt;
Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;

Notes:
    lowercase %s format character in strftime is a GNU extension and not widely supported.
    POSIX::strftime affected by underlying crt's strftime because POSIX::strftime just calls crt's one.
    Time::Local is good function to replace POSIX::strftime because it's a perl core module function.

    Document about Time::Local.
     http://perldoc.perl.org/Time/Local.html

    These are specifications of strftime.

    The GNU C Library Reference Manual.
     http://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html

    perl POSIX module's strftime document. It does not have '%s'.
     http://perldoc.perl.org/POSIX.html

    strftime document of Microsort Windows C Run-Time library.
     https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx

    The Open Group's old specification does not have '%s' too.
     http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

    On my environment, following problems happened.
    - msys   : git svn fetch does not progress at all with perl.exe consuming CPU.
    - cygwin : git svn fetch progresses but time stamp information is dropped.
       Every commits have unix epoch timestamp.

    I would like to thank git developer and contibutors.
    git helps me so much everyday.
    Thank you.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>git-svn: lazy load some modules</title>
<updated>2015-02-26T20:19:21Z</updated>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<published>2015-01-15T08:54:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=47092c10671da906ae626634dc83beb29ce76a9d'/>
<id>urn:sha1:47092c10671da906ae626634dc83beb29ce76a9d</id>
<content type='text'>
We can delay loading some modules until we need them for uncommon
code paths.  For example, persistent memoization is not often
needed, so we can avoid loading the modules for it until we
encounter svn::mergeinfo during fetch.

This gives a tiny reduction in syscalls (from 15641 to 15305) when
running "git svn info" and counting via "strace -fc".  Further,
more invasive work will be needed to noticeably improve performance.

Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
</content>
</entry>
<entry>
<title>Git.pm: two minor typo fixes</title>
<updated>2015-02-18T20:29:00Z</updated>
<author>
<name>Alexander Kuleshov</name>
<email>kuleshovmail@gmail.com</email>
</author>
<published>2015-02-18T17:32:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ef2956a5e2445470db93e392d640c664f3104ef8'/>
<id>urn:sha1:ef2956a5e2445470db93e392d640c664f3104ef8</id>
<content type='text'>
Signed-off-by: Alexander Kuleshov &lt;kuleshovmail@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Git::SVN: handle missing ref_id case correctly</title>
<updated>2015-01-15T08:35:55Z</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>artagnon@gmail.com</email>
</author>
<published>2015-01-10T14:35:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9a2bb059e76b1368392f86ecf7af2ba188e3cac5'/>
<id>urn:sha1:9a2bb059e76b1368392f86ecf7af2ba188e3cac5</id>
<content type='text'>
ref_id should not match "refs/remotes/".

[ew: dropped initial hunk for GIT_SVN_ID at Ramkumar's request]

Signed-off-by: Ramkumar Ramachandra &lt;artagnon@gmail.com&gt;
Signed-off-by: Eric Wong &lt;normalperson@yhbt.net&gt;
</content>
</entry>
</feed>
