[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] --one-file-system option's interaction with --listed-incre
From: |
Nathan Stratton Treadway |
Subject: |
Re: [Bug-tar] --one-file-system option's interaction with --listed-incremental |
Date: |
Wed, 20 Jun 2012 11:31:38 -0400 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Fri, Jun 01, 2012 at 12:13:02 +0300, Sergey Poznyakoff wrote:
> Thanks for a detailed bug report. Please, allow me some time to analyze it.
Hey, Sergey,
As I was looking over the tar output from my earlier testing, I notice a
separate (but hopefully at least somewhat related) issue: adding
--listed_incremental appears to swap the meaning of --exclude-tag= and
--exclude-tag-under= .
Here's a simplified example case:
==================================================
# tar --version | head -n 1
tar (GNU tar) 1.26
# ls -lR tarexcltest/
tarexcltest/:
total 8
drwxr-xr-x 2 root root 4096 Jun 20 10:28 subdir
-rw-r--r-- 1 root root 3 May 28 09:43 top-level-file
tarexcltest/subdir:
total 4
-rw-r--r-- 1 root root 0 May 28 09:48 excludeme
-rw-r--r-- 1 root root 3 May 28 09:43 subdir-file
# rm -f *.tar *.snar
# for type in "" -under -all; do CMD="tar -cf excltest${type}.tar
--exclude-tag${type}=excludeme tarexcltest/"; echo $CMD ; $CMD; done
tar -cf excltest.tar --exclude-tag=excludeme tarexcltest/
tar -cf excltest-under.tar --exclude-tag-under=excludeme tarexcltest/
tar -cf excltest-all.tar --exclude-tag-all=excludeme tarexcltest/
# for type in "" -under -all; do CMD="tar -cf excltest${type}_incr.tar
--exclude-tag${type}=excludeme --listed-incremental=new${type}.snar
tarexcltest/"; echo $CMD ; $CMD; done
tar -cf excltest_incr.tar --exclude-tag=excludeme --listed-incremental=new.snar
tarexcltest/
tar -cf excltest-under_incr.tar --exclude-tag-under=excludeme
--listed-incremental=new-under.snar tarexcltest/
tar -cf excltest-all_incr.tar --exclude-tag-all=excludeme
--listed-incremental=new-all.snar tarexcltest/
# for type in "" -under -all; do f=excltest${type}.tar; echo "=== $f ==="; tar
-tf $f; f=excltest${type}_incr.tar; echo "--- $f ---"; tar -tf $f; echo; done
=== excltest.tar ===
tarexcltest/
tarexcltest/subdir/
tarexcltest/subdir/excludeme
tarexcltest/top-level-file
--- excltest_incr.tar ---
tarexcltest/
tarexcltest/subdir/
tarexcltest/top-level-file
=== excltest-under.tar ===
tarexcltest/
tarexcltest/subdir/
tarexcltest/top-level-file
--- excltest-under_incr.tar ---
tarexcltest/
tarexcltest/subdir/
tarexcltest/top-level-file
tarexcltest/subdir/excludeme
=== excltest-all.tar ===
tarexcltest/
tarexcltest/top-level-file
--- excltest-all_incr.tar ---
tarexcltest/
tarexcltest/top-level-file
==================================================
So, you can see that in both cases --exclude-tag-all completely excluded
"subdir", as expected... but for the other two exclude options the
addition of the --listed-incremented toggled whether or not the
"subdir/excludeme" file was included in the dump.
Note that in this case the specified snar files don't exist (that is,
the problem shows up on level 0 incremental runs), so it is a different
situation than the two I reported earlier in this thread.
(Also note that I have been running all these tests as "root" because I
needed privs to do the bind mount for my original --one-file-system
tests, but these --exclude-tag... examples work just the same in an
unprivileged account.)
I haven't tried tracking down exactly why this happens using gdb, but
let me know if you think my doing so would be useful.
Thanks.
Nathan
----------------------------------------------------------------------------
Nathan Stratton Treadway - address@hidden - Mid-Atlantic region
Ray Ontko & Co. - Software consulting services - http://www.ontko.com/
GPG Key: http://www.ontko.com/~nathanst/gpg_key.txt ID: 1023D/ECFB6239
Key fingerprint = 6AD8 485E 20B9 5C71 231C 0C32 15F3 ADCD ECFB 6239