Hello Peter!

On Friday 19 December 2008 Peter Rabbitson wrote:
> I finally found some time to try and use fsvs on a real machine. I hit a
> roadblock - the first commit does not happen no matter what I do.
Your email was wrapped in some lines, so I have to guess a bit.

> ... 
> # Nothing configured so far
>
> Morlock:/# cd /
>
> Morlock:/# fsvs status
> Couldn't find a working copy with matching base.
...
> Morlock:/# fsvs urls
> svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock
This was a single line, I suppose.

> Morlock:/# fsvs ignore 't/var/lib/aptitude/**' '/**'
...
> # Attempting a blank commit, just to make sure it is not an access issue
> # I can completely skip this step, still get the same result below
>
> Morlock:/# fsvs commit -m "Make sure the repo is healthy"
> Committing to
> svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock
> committed revision      1 on 2008-12-19T09:43:44.220913Z as dominus
>
>
> # This already doesn't look too good
Well, this is due to FSVS design.

The logic in FSVS is:
- Read the directories
- Verify the ignore patterns for the entries
- For the remaining entries, go down recursively.

(copied from 
http://article.gmane.org/gmane.comp.sysutils.backup.fsvs.general/498/match=logic%20in%20FSVS)

So it doesn't find any entries to take on the root level, and
so doesn't really do anything.


> Morlock:/# fsvs update
>
>
> An error occurred: Invalid filesystem path syntax (160005)
>   in cb__record_changes_mixed: reporter->finish_report: Target path does
> not exist
This sounds interesting.
Could you please re-run that with "-d", and send me the output?


> # However status claims . is already commited
That seems to be a follow-up problem from above.


> # Proceed to add some real files
This is what is mentioned in the mail above, too; to get FSVS to skip
reading some levels, and directly take some files, this is the way to go.

> Morlock:/# fsvs add /var/lib/aptitude/
> N...       dir  /var/lib/aptitude/
>
> Morlock:/# fsvs status
> n...       dir  var
> N...   2068355  var/lib/aptitude/pkgstates
> N...   2068355  var/lib/aptitude/pkgstates.old
> n...       dir  var/lib/aptitude
> n...       dir  var/lib
See, now it sees the other files, too.

> # Not good
I think that's better.


> Morlock:/# fsvs commit -m "try to actually add something..."
> Committing to
> svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock
> n...       dir  var
> n...       dir  var/lib
> n...       dir  var/lib/aptitude
> N...   2068355  var/lib/aptitude/pkgstates
>
>
> An error occurred: Filesystem has no item (160013)
>   in ci__nondir: svn_txdelta_send_stream: File not found: transaction
> '1-2', path '/trunk/morlock/var'
That's interesting again.
What does
  svn ls 
svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock
give? If that returns an error, this path doesn't yet exist in the repository.

If it does, then FSVS doesn't tell the repository to add the var directory ...
Which version is that? I fixed some bug in there a few months ago.


...
> Some more info:
> Morlock:/# fsvs -V
> FSVS (licensed under the GPLv3), (C) by Ph. Marek; version fsvs-1.1.16:1690
>
> # Looks like nothing was actually committed to the repo (even
> ./trunk/morlock/)
> Morlock:~# svn co
> svn+ssh://[email protected]/space/system/svn_repos/fsvs/ Checked out
> revision 1.
> Morlock:~# cd fsvs/
> Morlock:~/fsvs# ls -al
> total 12
> drwxr-xr-x 3 root root 4096 2008-12-19 04:59 .
> drwxr-xr-x 8 root root 4096 2008-12-19 04:59 ..
> drwxr-xr-x 6 root root 4096 2008-12-19 04:59 .svn
Aha, here's the culprit!
You tell FSVS to use 
        svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock,
but this path doesn't actually exist in the repository!

FSVS doesn't create intermediate directories *above* the base URL, only
within the working copy.

You'll need to create that first, eg. by
  svn mkdir 
svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk -m1
  svn mkdir 
svn+ssh://[email protected]/space/system/svn_repos/fsvs/trunk/morlock -m2

Then you could do a "fsvs sync", to get it to know the current repository
revision, and off you go with
        fsvs commit 


Hope that helps!


Regards,

Phil


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

------------------------------------------------------
http://fsvs.tigris.org/ds/viewMessage.do?dsForumId=3928&dsMessageId=987572

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to