bug-tar
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]