Code

Teach import-tars about GNU tar's @LongLink extension.
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Tue, 1 May 2007 21:42:44 +0000 (23:42 +0200)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 2 May 2007 17:22:34 +0000 (13:22 -0400)
commit775477aa1da94cb9fb9b9afdc217231a0cd42ac1
treeb503ff64c120c824e60a30abcdb891b3396d3be3
parentb5cc62f701abf8b903387a5d7c77a59f347d66fd
Teach import-tars about GNU tar's @LongLink extension.

This extension allows GNU tar to process file names in excess of the 100
characters defined by the original tar standard. It does this by faking a
file, named '././@LongLink' containing the true file name, and then adding
the file with a truncated name. The idea is that tar without this
extension will write out a file with the long file name, and write the
contents into a file with truncated name.

Unfortunately, GNU tar does a lousy job at times. When truncating results
in a _directory_ name, it will happily use _that_ as a truncated name for
the file.

An example where this actually happens is gcc-4.1.2, where the full path
of the file WeThrowThisExceptionHelper.java truncates _exactly_ before the
basename. So, we have to support that ad-hoc extension.

This bug was noticed by Chris Riddoch on IRC.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
contrib/fast-import/import-tars.perl