Package: pristine-tar
Version: 0.4
Severity: wishlist

Hi,

as you probably know, git is a content tracker, and (at the moment at
least) it completely ignores empty directories. Unfortunately, some
upstream tend to ship tarballs containing empty directories, which lead
to such problems while trying to re-use the delta generated using a git
working copy:

| tar: graphviz-2.16.1/windows/cmd/bin: Cannot stat: No such file or directory
| tar: graphviz-2.16.1/windows/lib/lib: Cannot stat: No such file or directory
| tar: graphviz-2.16.1/windows/lib/lib/Debug: Cannot stat: No such file or 
directory
| tar: graphviz-2.16.1/windows/lib/lib/Release: Cannot stat: No such file or 
directory
| tar: graphviz-2.16.1/windows/plugin/lib: Cannot stat: No such file or 
directory
| tar: graphviz-2.16.1/windows/plugin/lib/Debug: Cannot stat: No such file or 
directory
| tar: graphviz-2.16.1/windows/plugin/lib/Release: Cannot stat: No such file or 
directory
| tar: Error exit delayed from previous errors
| command failed: tar cf /tmp/pristine-tar.vF1dw8NFlR/gentarball --owner 0 
--group 0 --numeric-owner -C /tmp/pristine-tar.vF1dw8NFlR/workdir 
--no-recursion --mode 0644 --files-from /tmp/pristine-tar.vF1dw8NFlR/manifest

Would you need an example of such a tarball, just apt-get source
graphviz, or help yourself in http://graphviz.org/pub/graphviz/ARCHIVE/,
2.8 is also affected, for example.

Note that I got rid of the empty directories when I generated the
deltas, using a really clean working directory (git-checkout -f,
git-clean -x -d), so the problem isn't that the empty directories were
present in the working directory during gendelta, and then absent during
gentar.


Solutions I can see right now (disclaimer: I'm really new to
pristine-tar):

 - modify the handling of upstream sources, adding an empty .gitignore
   files so that the empty directories can be tracked in git.
   git-import-orig from git-buildpackage could be added a warning
   message and a flag to create such empty .gitignore files.

   I've tested adding such .gitignore files, and pristine-tar just does
   the right thing and generate the expected tarballs.

   Problem: While it's not really a problem for people starting using
   pristine-tar, it requires modifications to the existing trees for
   people already having stored upstream branches, and that might mean a
   mess if tags are already being used.


 - modify the format of deltas so as to support empty directories there.
   Already-existing trees (upstream branches, and their tags) wouldn't
   have to be modified, it would just be needed (if there are some
   directories in the original tarball) to update the deltas so that
   these empty directories get represented and then later added back to
   the generated tarballs.

   I don't think adding some strings representing empty directories
   should bloat the deltas.


Cheers,

-- 
Cyril Brulebois



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to