[darcs-devel] partial repository; bug?

Han-Wen Nienhuys hanwen at xs4all.nl
Sat Nov 26 03:11:37 PST 2005


Hello Darcs gurus,

together with a friend of mine (CC-ed) I am experimenting with 
distributed SCM systems.  His personal favorite is bzr (bazaar-ng), 
while mine is darcs. The biggest problem with Darcs, besides a large 
number of idiosyncrasies (*) relative to other SCMs, is that his 
repositories get broken without apparent reason.

Setup:

- we have SSH access to a server, and on that server we are both in 
group "lilypond".

- There is a repository on /home/hanwen/repo/gub (in my home directory). 
The repository is group read/writable

- We both run darcs push/darcs pull over SSH.

- None of the repositories have been checkpointed or partialed (at least 
not to our knowledge) or whatever. Just pushes and pulls.

Symptoms

For no apparent reason, darcs starts complaining that 'this' repository 
is partial (Couldn't the offending repository be listed with its 
location?). When copying the remote repository to a local file system, 
everything works. I have also been unable to reproduce this problem on 
my home network. This happened twice in two days, but we haven't worked 
out a reproduction scenario. (Perhaps it's worthwhile to have a logging 
flag, so all changes to a repo are journaled?)


Versions:

Version: I run 1.0.4-fc4 from Fedora extras, the server is running 1.0.4 
static from codecarpet. Jan created his local (faulty?) repo with 1.0.3, 
and still is unable to push or pull his repo with 1.0.5rc1


Screenshot:
//////
  $ darcs push lilypond.org:/home/hanwen/repo/gub
Pushing to lilypond.org:/home/hanwen/repo/gub...
darcs: failed to read patch in get_extra:
Sat Nov 26 02:11:16 CET 2005  hanwen at xs4all.nl
   * add sf.net
Perhaps this is a 'partial' repository?
[1]10:42:51 janneke at peder:~/bzr/gub2
$ darcs pull lilypond.org:/home/hanwen/repo/gub
Invalid repository:  lilypond.org:/home/hanwen/repo/gub

darcs failed:  (scp) failed to fetch: 
lilypond.org:/home/hanwen/repo/gub/_darcs/inventory
[2]10:42:54 janneke at peder:~/bzr/gub2
$ darcs pull lilypond.org:/home/hanwen/repo/gub
Pulling from "lilypond.org:/home/hanwen/repo/gub"...
LilyPond.org Grand Unified Builder repository
**********************
darcs: failed to read patch in get_extra:
Sat Nov 26 02:29:06 CET 2005  hanwen at xs4all.nl
   * fix url
Perhaps this is a 'partial' repository?
/////

Questions

* How can we diagnose the problem?

* What is happening here?

(* How could we have found out this for ourselves? )


(*) idiosyncrasies

The idiosyncrasies mainly seem to be in naming, eg.

* "record" iso. "commit"

* "boring" iso. ".darcsignore"

and in defaults that are unsuitable for seasoned users (eg. the need to 
supply -a for pushing/recording everything.)   This is something that 
needs attention if the darcs community wants to win over more users of 
other advanced SCMs; I for one am not attached to copying CVS conventions.

Furthermore, it's a shame that darcs needs a remote binary of darcs. 
Couldn't this easily be circumvented by rsyncing the remote repository 
(using the local repo as seed to reduce network usage), applying the 
result, and rsyncing the result back to a temporary directory (using the 
remote repo as seed, again to minimize traffic), and renaming the the 
temporary directory?

I'm not sure what should happen with locking when the network connection 
is broken halfway; how does bzr deal with this?

-- 
  Han-Wen Nienhuys - hanwen at xs4all.nl - http://www.xs4all.nl/~hanwen





More information about the darcs-devel mailing list