Login | Register
My pages Projects Community openCollabNet

Discussions > users > Re: questions about "unversion" and "ignore"

fsvs
Discussion topic

Hide all messages in topic

All messages in topic

Re: questions about "unversion" and "ignore"

Author pmarek
Full name P.Marek
Date 2008-08-23 10:56:12 PDT
Message Hello Plamen!

Here's another nugget of information.


On Wednesday 23 July 2008 MMM MMM wrote:
...
> 3) I get some error with prop-list:
> $ sudo fsvs prop-list ./etc/adjtime
> etc/adjtime has no properties.
> Segmentation fault (core dumped)
The segmentation violation has vanished with current trunk, you said on IRC.

> 4.2) SVN proplist -v result:
> $ sudo svn proplist -v -r head
> file://localhost/med​ia/sda6/backup/fsvs/​trunk/base/etc/adjti​me Properties
> on 'file://localhost/me​dia/sda6/backup/fsvs​/trunk/base/etc/adjt​ime':
> svn:text-time : 2008-02-10T18:12:36.000000Z
> svn:unix-mode : 0644
> svn:owner : 0 root
> svn:group : 0 root
And SVN reports *all* properties - whereas FSVS "proplist" only shows not
directly interpreted values.

FSVS takes the properties that are needed for the filesystem
directly; "prop-list" only shows
* really user-defined values (like "aaa"="bbb"), and
* other things that are not stored in meta-data - like "commit-pipe", etc.

Hope that clarifies things a bit.


Regards,

Phil


--
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!

Re: questions about "unversion" and "ignore"

Author pmarek
Full name P.Marek
Date 2008-07-26 05:36:13 PDT
Message On Wednesday 23 July 2008 MMM MMM wrote:
> Hi Philipp,
>
> Thank you for quick answers.
>
> Shortly my case is: linux PC and a linux beginner who think it is Pandora
> box (OS) :). I am not sure how many people use FSVS (IRC #fsvs is empty)
> but FSVS looks very nice to me. I think FSVS will help me to monitor and
> learn my system closely. I could be wrong, but check two examples:
>
> 1) using GUI to change single parameter of my graphic card or my monitor
> could recreate config file(s) (xorg.conf) with much more changes. Even
> sometimes display could be blank/black (on next reboot). With FSVS, very
> quickly I can find all changed files/parameters and search for more
> specific help (I can't learn linux in one day)
>
> 2) in case of virus/hack in my system, I expect some essential changes like
> file(s) permissions, file(s) owner, etc. FSVS will give me easy way to
> watch everything outside my home directory until I learn a better way. Is
> it a good reason to backup everything? (To be able to check for changed
> meta data)
Yes, these are the things that FSVS was written for.

> > You can't (at least ATM); please search for "svn
> > obliterate" for more details.
> > A short search found me
> >
> > http://svnbook.red-b​ean.com/en/1.0/svn-b​ook.html#ftn.id25196​06
> >
> > Well, I think your best bet would be to do the daily
> > commits in a special path
> > in the repository; keep "interesting" things as a
> > copy in another path, and
> > try to filter that daily path out each month.
> Then I could use two different repositories (disk space is cheap). After
> monthly backup I could delete and recreate daily backups repository.
That's possible, too.
You would have to use a different FSVS_WAA and FSVS_CONF for the two, so they
can work independently.

> > > I do not like global ignore filters like: ./**~
> >
> > Why don't you want to use the global ignore patterns?
>
> Ok, it was wrong. Anyway, Looks like I have to change ignore filters.
> 1) For daily backups I do not need ignore filters.
Ok.

> 2) For monthly backups I will ignore as much as possible (if it is safe and
> depends of my knowledge)
Ok.

> 3) I want to monitor and analyze FSVS status - for
> this I need more info, so I need less (or without) ignore filters.
> Following actions take place here:
> - uninstall temp software, delete config files (after uninstall)
> - check my efforts/changes (mostly '~' files)
> - if ok, then commit separately; if not ok, then revert (usually
> when changes are completed, files will be commited, usually it
> will be before regular backup)
> - check "installed updates" changes
> - check for suspicious changes - as I told (as I understand) - everything
> outside my home folder, changed permissions/owner
How about doing that with the daily repository? If you find that some change
is important, you could easily commit that single file to the monthly
repository, too.

> > I'd ignore it - that's safer, because you can't forget to empty it.
> I suppose, you mean: "...because you _can_/_could_ forget to empty it"
Yes, I meant "Use ignore patterns - then it doesn't matter whether you empty
it or not".

> > I don't know what you're after...
>
> Example for another use case is replacement for "hardware profiles"
> (Available in windows. I did not try yet but I want to have linux installed
> on USB hdd and use it with different hardware. Any other ideas?).
Full hardware independence is not that easy.
Windows doesn't do it - it uses different HALs for different machines.

But you can easily put a knoppix CD on a harddisk, and (depending on the BIOS)
boot it from there - knoppix already does a *whole lot* of hardware
detection.


> Maybe it is not best way for "hardware profiles", but with FSVS I could
> change many settings very quickly without simple/complex scripts which I
> could write and then forgot what was it about. (It is about hardware
> profile or any kind of profiles).
Yes, that's true. Use a generic hardware-independent path in your repository
as common base (eg. for /etc/profile), and then different (overlayed) paths
for the hardware-dependent things (like xorg.conf).

> One question: I am trying FSVS/SVN reports. I have initial revision #1.
> Then I have few more revisions. How to get report about: -
> modified/new/deleted/replaced files in revision #2
> - files with changed properties/permissio​ns/owner/time in revision #2
>
> FSVS status with '-v' print nice report but does not accept '-r' argument:
> .t..C. 4554 var/lib/apt/extended_states
> FSVS log does not show flags modified/new/deleted/replaced, so I am using
> svn log: M /trunk/base/var/lib/apt
That's one way.

Another would be to try "fsvs remote-status -rX" - that gives you the changes
between your current version and the given remote version.

I think I'll expand that to use two revision parameters, too.


> "...There is an option controlling the output format; see "fsvs log" output
> format..." Where can I read more about "log output format"?
http://fsvs.tigris.o​rg/source/browse/*ch​eckout*/fsvs/trunk/w​ww/doxygen/html/grou​p__options.html#o_lo​goutput

> Can I get FSVS log report similar to FSVS status report?
Not quite, not yet.


> And some notes, maybe bugs
>
> 1) FSVS diff print both - content changes and
> properties/permissio​n/owner/time. SVN diff accept '--diff-cmd' argument.
> With '--diff-cmd' I could skip content (binary files)
http://fsvs.tigris.o​rg/source/browse/*ch​eckout*/fsvs/trunk/w​ww/doxygen/html/grou​p__options.html#o_di​ff

> 2) As I see, I can't revert only properties/permissio​ns/owner/time
No, not yet.

> 3) I get some error with prop-list:
> $ sudo fsvs prop-list ./etc/adjtime
> etc/adjtime has no properties.
> Segmentation fault (core dumped)
Could you run this command, with "-d" appended, and (privately) send me the
output?
I can't reproduce that.


> 4.1) FSVS diff -v result:
> $ sudo fsvs diff -v ./etc/adjtime
> diff -u ./etc/adjtime.r33 ./etc/adjtime.local
> -Mode: 0600
> +Mode: 0644
> -MTime: Sun Feb 10 20:12:36 2008
> +MTime: Fri Feb 15 23:40:07 2008
> Owner: 0 (root)
> Group: 0 (root)
> --- ./etc/adjtime Rev. 33 (Sun Feb 10 20:12:36 2008)
> +++ ./etc/adjtime Local version (Fri Feb 15 23:40:07 2008)
> @@ -1,3 +1,3 @@
> --0.000374 1202667155 0.000000
> -1202667155
> +0.862144 1203111606 0.000000
> +1203111606
> LOCAL
>
> 4.2) SVN proplist -v result:
> $ sudo svn proplist -v -r head
> file://localhost/med​ia/sda6/backup/fsvs/​trunk/base/etc/adjti​me Properties
> on 'file://localhost/me​dia/sda6/backup/fsvs​/trunk/base/etc/adjt​ime':
> svn:text-time : 2008-02-10T18:12:36.000000Z
> svn:unix-mode : 0644
> svn:owner : 0 root
> svn:group : 0 root
>
> Check 'svn:unix-more' values. FSVS show repository value 0600, local value
> 0644. But SVN show repository value 0644.
Hmmm ... that seems to work for me.
Could you show me the "fsvs info /etc/adjtime" output, please?
And maybe "fsvs diff -v -d /etc/adjtime", too.
Thank you!


Regards,

Phil

--
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!

Re: questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-24 02:55:34 PDT
Message Hi again,


> I think, I found the answer:
> $fsvs sync-repos
>
> But I got another error/bug:
> <<
> ...
> N... dir /var/cache/system-to​ols-backends/backup/​1
> N... 0 /var/cache/system-to​ols-backends/backup/​2
> 11:53:41.300 cb___close_file[raca​llback.c:567] INTERNAL BUG
> S_ISDIR(sts->st.mode)
>
> Segmentation fault (core dumped)
> >>
>
> Please help, please advice!


Found the problem:
<<
$ fsvs -V
FSVS (licensed under the GPLv3), (C) by Ph. Marek; version fsvs-1.1.14:1496
>>

With last version 1.1.16 it is working just fine :)
Thank you.

Re: questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-24 01:54:46 PDT
Message Hi again,


> One quick question:
> How to commit/import my old tar backups before my first full backup?
>
> I did:
> cd /media/sda6/backup
> fsvs commit -m 'backup1'
> etc.
>
> Now I want to:
> cd /
> fsvs commit -m 'full backup Jul-2008'
>
> And I got this error message:
> <<
> Committing to file://localhost/med​ia/sda6/backup/fsvs/​trunk/base
> N... dir /boot
>
> An error occurred: Item already exists in filesystem (160020)
> in ci__directory: add_directory
> >>


I think, I found the answer:
$fsvs sync-repos

But I got another error/bug:
<<
...
N... dir /var/cache/system-to​ols-backends/backup/​1
N... 0 /var/cache/system-to​ols-backends/backup/​2
11:53:41.300 cb___close_file[raca​llback.c:567] INTERNAL BUG
  S_ISDIR(sts->st.mode)
  
Segmentation fault (core dumped)
>>


Please help, please advice!

Kind regards,
Plamen.

Re: questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-23 23:15:29 PDT
Message Hi,

One quick question:
How to commit/import my old tar backups before my first full backup?


I have old tar backups in:
/media/sda6/backup1
/media/sda6/backup2
etc.


This is what I did:
cd /
fsvs urls path_to_svn_repository
fsvs ignore load < /ignore.txt

cd /media/sda6/backup
fsvs urls path_to_svn_repository
fsvs ignore load < /ignore.txt

mv /media/sda6/backup1 /media/sda6/backup
cd /media/sda6/backup
fsvs commit -m 'backup1'

mv /media/sda6/backup2 /media/sda6/backup
cd /media/sda6/backup
fsvs commit -m 'backup2'

etc.


Now I want to do this:
cd /
fsvs commit -m 'full backup Jul-2008'


And I got this error message:
<<
Committing to file://localhost/med​ia/sda6/backup/fsvs/​trunk/base
N... dir /boot

An error occurred: Item already exists in filesystem (160020)
  in ci__directory: add_directory
>>


What is wrong? What I am missing here?
It is like I commit from two different machines (/media/sda6/backup and /) but without initial update.


regards,
Plamen.



--- On Wed, 7/23/08, Philipp Marek <philipp at marek dot priv dot at> wrote:

> From: Philipp Marek <philipp at marek dot priv dot at>
> Subject: Re: questions about "unversion" and "ignore"
> To: users at fsvs dot tigris dot org
> Cc: "MMM MMM" <mmm4m5m at yahoo dot com>
> Date: Wednesday, July 23, 2008, 4:07 PM
> Hello Plamen,
>
> On Wednesday 23 July 2008 MMM MMM wrote:
> > I am new to both fsvs and svn. Please, excuse me if my
> questions are
> > irrelevant or if question are related to svn.
> Never mind, just ask!
> FSVS has a lot in common with subversion, so it helps if
> you already know
> about that - especially the svn command line client.
>
> > 1. About svn repository
> >
> > case 1: I commit file XYZ; then I unversion and ignore
> file XYZ.
> > -> How to completely remove file XYZ from svn
> repository and save disk
> > space?
> You can't (at least ATM); please search for "svn
> obliterate" for more details.
> A short search found me
>
> http://svnbook.red-b​ean.com/en/1.0/svn-b​ook.html#ftn.id25196​06
>
>
> > case 2: I do daily commits; once in a month I remove
> all garbage (empty
> > trash, uninstall temp/test software). -> How to
> shrink svn repository and
> > remove all daily commits?
> >
> > Does fsvs handle these cases? (or maybe svndumpfilter
> is the answer?)
> >
> > If I am able to shrink my svn repository, then I will
> not worry about
> > ignore filters.
> Well, I think your best bet would be to do the daily
> commits in a special path
> in the repository; keep "interesting" things as a
> copy in another path, and
> try to filter that daily path out each month.
>
>
> > 2. I would like to see examples about ignore filters
> (I did not check
> > everything in mail archive yet, but found "howto
> backup" tutorial and "FSVS
> > for sysadmins"). I am linux beginner and
> can't decide easily. Could I ask
> > for advice:
> >
> >
> > Are these good ignore filters:
>
> You can use the "**" pattern for matching in
> arbitrary depths:
>
> Instead of
> > ./root/.mozilla/fire​fox/*/Cache/**
> > ./home/*/.mozilla/fi​refox/*/Cache/**
> I'd just use
> ./**/.mozilla/firefo​x/*/Cache/**
>
> And similar for the others.
> > ./root/.nautilus/met​afiles/file**
> > ./home/*/.nautilus/m​etafiles/file**
> > ./root/.thumbnails/**
> > ./home/*/.thumbnails/**
> > ./root/.Trash/**
> > ./home/*/.Trash/**
> > ./root/.Trash/**
> > ./home/*/.Trash/**
> Do you really work as root often? That's not
> recommended in unix; I'd suggest
> using "sudo" or "su", when the need
> arises.
>
> > I do not like global ignore filters like:
> > ./**~
> > So, I am planning to ignore each file separately like:
> > ./etc/apt/sources.list~
> > Is it good or bad?
> That's bad, IMO - you'll soon be drowned in ignore
> patterns.
>
> Why don't you want to use the global ignore patterns?
>
>
> > To ignore apt cache or to clear cache before commit?
> > /var/cache/apt/archives/**
> I'd ignore it - that's safer, because you can't
> forget to empty it.
>
>
> > I see many add/delete entries about:
> > /var/lib/scrollkeeper/index/**
> > /var/lib/scrollkeeper/TOC/**
> > Can I add ignore filter for these? As I understand all
> these are saved in
> > svn repository and it will grow up slowly.
> Yes, correct.
> If you find that it grows fast, because the XML data gets
> resorted often, it
> might be a good idea to put a commit-pipe property on these
> files (to keep
> them in canonical, sorted form) - or to just ignore them,
> because it's only a
> package to be extracted - and not your personal data that
> can be lost.
>
>
> > "Howto backup" tutorial does not say
> anything about "ignore log files". So
> > I suppose it is bad idea.
> Well, it depends on your use-case.
>
> I currently use FSVS for /etc on some machines; for the
> complete / on a
> test-machine; and I'll use it for /home soon.
>
> If you're keeping a highly sensitive server, you'll
> want to keep
> *everything* - if it's just to know what could have
> caused the latest
> breakage in your asterisk or X installation, keeping /etc
> with some ignores
> is sufficient.
>
>
> I don't know what you're after - and, to be honest,
> I don't really know myself
> what is appropriate for my private machine in the long run.
> Currently I store /etc - and plan to do /home, too, as I
> wrote above.
>
> But the possible problem of inflating the repository is
> what keeps me from
> using it on the root filesystem, as I'm running debian
> unstable - and there
> are daily changes, which I don't want to keep.
>
>
> I plan to write my own subversion repository backend (like
> bdb and fsfs), that
> should allow easy purging of data - so cleaning up should
> be possible.
> But if I ever get to do that it'll take at least a
> year, I think.
>
>
> > 3. About ignore filters and usage (please, correct me
> if I am wrong).
> > As I understand, before commit I have to check status.
>
> You don't *have* to - you can, but you don't need
> to.
>
> > Say I have new file
> > XYZ, then I have to decide:
> > - to delete file XYZ
> > - to ignore file XYZ
> > - to add ignore filter for file XYZ or all files with
> similar name or
> > location
> > - to commit and keep history for file XYZ
> >
> > How do you "ignore file XYZ" without ignore
> filter (reasons: next time when
> > I check status I want to see file XYZ; file XYZ is not
> ready for commit or
> > maybe will never be commited). Do you set temp ignore
> filter and after
> > commit remove it?
> That's one way to do that.
> If the file XYZ is easily separated from the others,
> because of the hierarchy,
> then you can tell commit some paths:
> /dir1/...
> /dir2/...
> /abc/def/XYZ
> /abc/ghi/...
> /dir5/...
> If you do
> fsvs ci dir1 dir2 abc/ghi dir5
> then abc/def/XYZ won't be committed.
>
>
> > Again sorry for my beginner questions and thanks in
> advance.
> Never mind - everyone's a beginner sometime.
>
> I hope I could help you a bit; if you've got any other
> questions, just ask.
>
>
> Regards,
>
> Phil
>
>
> --
> Versioning your /etc, /home or even your whole
> installation?
> Try fsvs (fsvs.tigris.org)!

Re: questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-23 14:35:30 PDT
Message Hi Thomas,

Thank you. Your point of view is helpful. Maybe I have to re-think again.

... but as of now my little idea is...

1) I think that with more/better backups I will not be afraid to touch/crash my system - maybe this will make it more easy to learn

2) I wish FSVS to store binaries, mostly because of meta data (permissions/owner/t​ime/checksum) and to monitor all changes. I am not sure is it correct, but I think this could help against viruses/hacks (if you have such in linux world :) )

... Example: I just know there is 'iptables', Still I do not touch that part, I do not know where it is. Still I can't feel self confident as much as I was with windows.

The same wish was with windows - to know what is going on. Other way, you run some installer and you do not know anything anymore. "Installer" could be any virus who come into because Internet Explorer bugs (even without any efforts/errors from my side).

regards,
Plamen.


--- On Wed, 7/23/08, Thomas Harold <tgh at tgharold dot com> wrote:

> From: Thomas Harold <tgh at tgharold dot com>
> Subject: Re: questions about "unversion" and "ignore"
> To: users at fsvs dot tigris dot org
> Cc: "MMM MMM" <mmm4m5m at yahoo dot com>
> Date: Wednesday, July 23, 2008, 5:24 PM
> In general, what works for us on servers is to base the FSVS
> off the
> root of the server, and do a lot of ignores. We will
> typically not
> version anything that is either:
>
> - binary
>
> - configuration files for a non-critical service (like
> Gnome
> configuration files)
>
> - log files, or daily reports (like pre-genreated calamaris
> reports for
> squid)
>
> - stuff in /home
>
> On our CentOS 5.1 boxes, that results in (after 6-12 months
> of using
> FSVS) a repository size of only 351 MB. Our ignore list
> for a server is
> typically between 30 and 60 lines. As we find additional
> things that
> don't need to be versioned, it's easy to
> unversion/ignore them and not
> worry about the excess space in the repository from the old
> files.
>
> But again, this is a production server, not a desktop
> machine, and we
> would prefer to have a bit of over-kill in regards to what
> we keep track
> of. We've been tempted, at times, to also version
> control the binaries,
> but it would be better to simply pull those back off of
> backups.

Re: questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-23 14:21:49 PDT
Message Hi Philipp,

Thank you for quick answers.

Shortly my case is: linux PC and a linux beginner who think it is Pandora box (OS) :). I am not sure how many people use FSVS (IRC #fsvs is empty) but FSVS looks very nice to me. I think FSVS will help me to monitor and learn my system closely. I could be wrong, but check two examples:

1) using GUI to change single parameter of my graphic card or my monitor could recreate config file(s) (xorg.conf) with much more changes. Even sometimes display could be blank/black (on next reboot). With FSVS, very quickly I can find all changed files/parameters and search for more specific help (I can't learn linux in one day)

2) in case of virus/hack in my system, I expect some essential changes like file(s) permissions, file(s) owner, etc. FSVS will give me easy way to watch everything outside my home directory until I learn a better way. Is it a good reason to backup everything? (To be able to check for changed meta data)


> You can't (at least ATM); please search for "svn
> obliterate" for more details.
> A short search found me
>
> http://svnbook.red-b​ean.com/en/1.0/svn-b​ook.html#ftn.id25196​06
>
> Well, I think your best bet would be to do the daily
> commits in a special path
> in the repository; keep "interesting" things as a
> copy in another path, and
> try to filter that daily path out each month.

Then I could use two different repositories (disk space is cheap). After monthly backup I could delete and recreate daily backups repository.


> Do you really work as root often? That's not
> recommended in unix; I'd suggest
> using "sudo" or "su", when the need
> arises.

Sorry, I just duplicate all ignore filters for home and for root.
No, I do not login as root, sometimes I run nautilus (file manager) as root ('sudo nautilus' and deleted files goes to root trash directory). All admin GUI tools save config files in root folder. (In my case, to run mozilla as root could be only because of mistake).


> > I do not like global ignore filters like: ./**~
>
> Why don't you want to use the global ignore patterns?

Ok, it was wrong. Anyway, Looks like I have to change ignore filters.
1) For daily backups I do not need ignore filters.
2) For monthly backups I will ignore as much as possible (if it is safe and depends of my knowledge)
3) I want to monitor and analyze FSVS status - for this I need more info, so I need less (or without) ignore filters. Following actions take place here:
- uninstall temp software, delete config files (after uninstall)
- check my efforts/changes (mostly '~' files) - if ok, then commit separately; if not ok, then revert (usually when changes are completed, files will be commited, usually it will be before regular backup)
- check "installed updates" changes
- check for suspicious changes - as I told (as I understand) - everything outside my home folder, changed permissions/owner


> I'd ignore it - that's safer, because you can't forget to empty it.

I suppose, you mean: "...because you _can_/_could_ forget to empty it"


> I don't know what you're after...

Example for another use case is replacement for "hardware profiles" (Available in windows. I did not try yet but I want to have linux installed on USB hdd and use it with different hardware. Any other ideas?).

Maybe it is not best way for "hardware profiles", but with FSVS I could change many settings very quickly without simple/complex scripts which I could write and then forgot what was it about. (It is about hardware profile or any kind of profiles).


> But the possible problem of inflating the repository...

Previous backup program I used was rdiff-backup with the same idea - diff, status, etc. - backup solution with "version control" features, without '.svn' folders everywhere.

Right now I have my old backups in svn repository. As I notice, there are some files in /var/cache/apt/archives/. So, I have motivation to try to shrink my repository (dump, etc). Let me see how much time it will takes.



One question: I am trying FSVS/SVN reports. I have initial revision #1. Then I have few more revisions. How to get report about:
- modified/new/deleted/replaced files in revision #2
- files with changed properties/permissio​ns/owner/time in revision #2

FSVS status with '-v' print nice report but does not accept '-r' argument:
   .t..C. 4554 var/lib/apt/extended_states
FSVS log does not show flags modified/new/deleted/replaced, so I am using svn log:
   M /trunk/base/var/lib/apt

"...There is an option controlling the output format; see "fsvs log" output format..."
Where can I read more about "log output format"?
Can I get FSVS log report similar to FSVS status report?



And some notes, maybe bugs

1) FSVS diff print both - content changes and properties/permissio​n/owner/time. SVN diff accept '--diff-cmd' argument. With '--diff-cmd' I could skip content (binary files)


2) As I see, I can't revert only properties/permissio​ns/owner/time


3) I get some error with prop-list:
$ sudo fsvs prop-list ./etc/adjtime
etc/adjtime has no properties.
Segmentation fault (core dumped)


4.1) FSVS diff -v result:
$ sudo fsvs diff -v ./etc/adjtime
diff -u ./etc/adjtime.r33 ./etc/adjtime.local
-Mode: 0600
+Mode: 0644
-MTime: Sun Feb 10 20:12:36 2008
+MTime: Fri Feb 15 23:40:07 2008
Owner: 0 (root)
Group: 0 (root)
--- ./etc/adjtime Rev. 33 (Sun Feb 10 20:12:36 2008)
+++ ./etc/adjtime Local version (Fri Feb 15 23:40:07 2008)
@@ -1,3 +1,3 @@
--0.000374 1202667155 0.000000
-1202667155
+0.862144 1203111606 0.000000
+1203111606
LOCAL

4.2) SVN proplist -v result:
$ sudo svn proplist -v -r head file://localhost/med​ia/sda6/backup/fsvs/​trunk/base/etc/adjti​me
Properties on 'file://localhost/me​dia/sda6/backup/fsvs​/trunk/base/etc/adjt​ime':
  svn:text-time : 2008-02-10T18:12:36.000000Z
  svn:unix-mode : 0644
  svn:owner : 0 root
  svn:group : 0 root

Check 'svn:unix-more' values. FSVS show repository value 0600, local value 0644. But SVN show repository value 0644.


Kind regards,
Plamen.

Re: questions about "unversion" and "ignore"

Author Thomas Harold <tgh at tgharold dot com>
Full name Thomas Harold <tgh at tgharold dot com>
Date 2008-07-23 07:24:18 PDT
Message In general, what works for us on servers is to base the FSVS off the
root of the server, and do a lot of ignores. We will typically not
version anything that is either:

- binary

- configuration files for a non-critical service (like Gnome
configuration files)

- log files, or daily reports (like pre-genreated calamaris reports for
squid)

- stuff in /home

On our CentOS 5.1 boxes, that results in (after 6-12 months of using
FSVS) a repository size of only 351 MB. Our ignore list for a server is
typically between 30 and 60 lines. As we find additional things that
don't need to be versioned, it's easy to unversion/ignore them and not
worry about the excess space in the repository from the old files.

But again, this is a production server, not a desktop machine, and we
would prefer to have a bit of over-kill in regards to what we keep track
of. We've been tempted, at times, to also version control the binaries,
but it would be better to simply pull those back off of backups.

Re: questions about "unversion" and "ignore"

Author Sheldon Hearn <sheldonh at starjuice dot net>
Full name Sheldon Hearn <sheldonh at starjuice dot net>
Date 2008-07-23 07:19:55 PDT
Message -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wednesday 23 July 2008 13:01:16 MMM MMM wrote:
> case 1: I commit file XYZ; then I unversion and ignore file XYZ.
> -> How to completely remove file XYZ from svn repository and save
> disk space?

cp -a /path/to/repo /path/to/repo.backup
svnadmin dump /path/to/repo | \
    svndumpfilter exclude relative/path/to/xyz > filtered.dump
rm -rf /path/to/repo
svnadmin create /path/to/repo
svnadmin load /path/to/repo < filtered.dump
cp -a /path/to/repo.backup/hooks/* /path/to/repo/hooks/.

Had to do this recently myself. Note that the relative path to xyz is
the path you'd use to reach it from the root checkout directory for the
repo.

Ciao,
Sheldon.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFIhz4LpGJX8XSg​as0RAq9SAKCDa/VTQkiq​ik9j5+9iQu7RO3dEEwCg​owiY
fohupMzXM5m1xsk/nyYQUWc=
=UrAa
-----END PGP SIGNATURE-----

Re: questions about "unversion" and "ignore"

Author pmarek
Full name P.Marek
Date 2008-07-23 06:07:08 PDT
Message Hello Plamen,

On Wednesday 23 July 2008 MMM MMM wrote:
> I am new to both fsvs and svn. Please, excuse me if my questions are
> irrelevant or if question are related to svn.
Never mind, just ask!
FSVS has a lot in common with subversion, so it helps if you already know
about that - especially the svn command line client.

> 1. About svn repository
>
> case 1: I commit file XYZ; then I unversion and ignore file XYZ.
> -> How to completely remove file XYZ from svn repository and save disk
> space?
You can't (at least ATM); please search for "svn obliterate" for more details.
A short search found me
  http://svnbook.red-b​ean.com/en/1.0/svn-b​ook.html#ftn.id25196​06


> case 2: I do daily commits; once in a month I remove all garbage (empty
> trash, uninstall temp/test software). -> How to shrink svn repository and
> remove all daily commits?
>
> Does fsvs handle these cases? (or maybe svndumpfilter is the answer?)
>
> If I am able to shrink my svn repository, then I will not worry about
> ignore filters.
Well, I think your best bet would be to do the daily commits in a special path
in the repository; keep "interesting" things as a copy in another path, and
try to filter that daily path out each month.


> 2. I would like to see examples about ignore filters (I did not check
> everything in mail archive yet, but found "howto backup" tutorial and "FSVS
> for sysadmins"). I am linux beginner and can't decide easily. Could I ask
> for advice:
>
>
> Are these good ignore filters:

You can use the "**" pattern for matching in arbitrary depths:

Instead of
> ./root/.mozilla/fire​fox/*/Cache/**
> ./home/*/.mozilla/fi​refox/*/Cache/**
I'd just use
    ./**/.mozilla/firefo​x/*/Cache/**

And similar for the others.
> ./root/.nautilus/met​afiles/file**
> ./home/*/.nautilus/m​etafiles/file**
> ./root/.thumbnails/**
> ./home/*/.thumbnails/**
> ./root/.Trash/**
> ./home/*/.Trash/**
> ./root/.Trash/**
> ./home/*/.Trash/**
Do you really work as root often? That's not recommended in unix; I'd suggest
using "sudo" or "su", when the need arises.

> I do not like global ignore filters like:
> ./**~
> So, I am planning to ignore each file separately like:
> ./etc/apt/sources.list~
> Is it good or bad?
That's bad, IMO - you'll soon be drowned in ignore patterns.

Why don't you want to use the global ignore patterns?


> To ignore apt cache or to clear cache before commit?
> /var/cache/apt/archives/**
I'd ignore it - that's safer, because you can't forget to empty it.


> I see many add/delete entries about:
> /var/lib/scrollkeeper/index/**
> /var/lib/scrollkeeper/TOC/**
> Can I add ignore filter for these? As I understand all these are saved in
> svn repository and it will grow up slowly.
Yes, correct.
If you find that it grows fast, because the XML data gets resorted often, it
might be a good idea to put a commit-pipe property on these files (to keep
them in canonical, sorted form) - or to just ignore them, because it's only a
package to be extracted - and not your personal data that can be lost.


> "Howto backup" tutorial does not say anything about "ignore log files". So
> I suppose it is bad idea.
Well, it depends on your use-case.

I currently use FSVS for /etc on some machines; for the complete / on a
test-machine; and I'll use it for /home soon.

If you're keeping a highly sensitive server, you'll want to keep
*everything* - if it's just to know what could have caused the latest
breakage in your asterisk or X installation, keeping /etc with some ignores
is sufficient.


I don't know what you're after - and, to be honest, I don't really know myself
what is appropriate for my private machine in the long run.
Currently I store /etc - and plan to do /home, too, as I wrote above.

But the possible problem of inflating the repository is what keeps me from
using it on the root filesystem, as I'm running debian unstable - and there
are daily changes, which I don't want to keep.


I plan to write my own subversion repository backend (like bdb and fsfs), that
should allow easy purging of data - so cleaning up should be possible.
But if I ever get to do that it'll take at least a year, I think.


> 3. About ignore filters and usage (please, correct me if I am wrong).
> As I understand, before commit I have to check status.
You don't *have* to - you can, but you don't need to.

> Say I have new file
> XYZ, then I have to decide:
> - to delete file XYZ
> - to ignore file XYZ
> - to add ignore filter for file XYZ or all files with similar name or
> location
> - to commit and keep history for file XYZ
>
> How do you "ignore file XYZ" without ignore filter (reasons: next time when
> I check status I want to see file XYZ; file XYZ is not ready for commit or
> maybe will never be commited). Do you set temp ignore filter and after
> commit remove it?
That's one way to do that.
If the file XYZ is easily separated from the others, because of the hierarchy,
then you can tell commit some paths:
    /dir1/...
    /dir2/...
    /abc/def/XYZ
    /abc/ghi/...
    /dir5/...
If you do
    fsvs ci dir1 dir2 abc/ghi dir5
then abc/def/XYZ won't be committed.


> Again sorry for my beginner questions and thanks in advance.
Never mind - everyone's a beginner sometime.

I hope I could help you a bit; if you've got any other questions, just ask.


Regards,

Phil


--
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!

questions about "unversion" and "ignore"

Author mmm4m5m
Full name Mmm Mmm
Date 2008-07-23 04:01:16 PDT
Message Hi all,


I am new to both fsvs and svn. Please, excuse me if my questions are irrelevant or if question are related to svn.



1. About svn repository

case 1: I commit file XYZ; then I unversion and ignore file XYZ.
-> How to completely remove file XYZ from svn repository and save disk space?

case 2: I do daily commits; once in a month I remove all garbage (empty trash, uninstall temp/test software).
-> How to shrink svn repository and remove all daily commits?

Does fsvs handle these cases? (or maybe svndumpfilter is the answer?)

If I am able to shrink my svn repository, then I will not worry about ignore filters.


2. I would like to see examples about ignore filters (I did not check everything in mail archive yet, but found "howto backup" tutorial and "FSVS for sysadmins"). I am linux beginner and can't decide easily. Could I ask for advice:


Are these good ignore filters:
./root/.mozilla/fire​fox/*/Cache/**
./home/*/.mozilla/fi​refox/*/Cache/**
./root/.nautilus/met​afiles/file**
./home/*/.nautilus/m​etafiles/file**
./root/.thumbnails/**
./home/*/.thumbnails/**
./root/.Trash/**
./home/*/.Trash/**


I do not like global ignore filters like:
./**~
So, I am planning to ignore each file separately like:
./etc/apt/sources.list~
Is it good or bad?


To ignore apt cache or to clear cache before commit?
/var/cache/apt/archives/**


I see many add/delete entries about:
/var/lib/scrollkeeper/index/**
/var/lib/scrollkeeper/TOC/**
Can I add ignore filter for these? As I understand all these are saved in svn repository and it will grow up slowly.


"Howto backup" tutorial does not say anything about "ignore log files". So I suppose it is bad idea.



3. About ignore filters and usage (please, correct me if I am wrong).
As I understand, before commit I have to check status. Say I have new file XYZ, then I have to decide:
- to delete file XYZ
- to ignore file XYZ
- to add ignore filter for file XYZ or all files with similar name or location
- to commit and keep history for file XYZ

How do you "ignore file XYZ" without ignore filter (reasons: next time when I check status I want to see file XYZ; file XYZ is not ready for commit or maybe will never be commited). Do you set temp ignore filter and after commit remove it?



Again sorry for my beginner questions and thanks in advance.
Plamen.
Messages per page: