>>>>> "Lst" == Lst Recv <[EMAIL PROTECTED]> writes:

    Lst> Hi.  As you may know, I'm having some problems with darcs.

Stop that, it's really annoying.

Instead, please tell us what the problem is, in concrete terms.  Ie,
exact commands used, darcs's prompts, your answers, file manifests
before and after each operation, etc.  And if you start a new thread,
_repeat_ the information you've already given, and say so, so that you
don't waste our time going back to look for the information you've
left out---especially if it wasn't there in the first place.

    Lst> Based on the tips from those who replied privately, I'm
    Lst> starting from the bottom, up.  When I run darcs check on my
    Lst> repo, it claims it's consistent.

If you don't have concrete evidence (== you understand the darcs repo
format, and all the operations you have executed, and can point to
specific data that are not what they should be), you should assume
that the program knows what it is talking about.  The fact that the
repository is consistent is not an assertion that it is consistent
with what you expect, of course.

That said, I'm going to take a guess at how darcs operating correctly
could produce symptoms like those you describe.

    Lst> Yet, when I init a new repo (darcs init), and then push to it,

Why are you doing this?  (That's a real question.)  What's wrong with

    darcs put existing-repo /path/to/create/new/repo

(please check syntax---I don't use put, but it should be something like
that)?

Pushing (or pulling, for that matter) to an empty repo probably works
if you know what you're doing, but you really would have to know what
you're doing to be sure.  The problem is that push operates on
patches, not revisions, so you need to understand the dependency graph
to know what exactly will happen if you push your most recent patch.

Eg, original repo history:

0. darcs init
1. Create and record file a.c.
2. Create and record file a.h.
3. Change api, recording files a.h and a.c.
4. Move a.h to b.h and record.
5. s/a.h/b.h/ in a.c. and record.

All records are plain records, no "additional-deps" options used.
Current contents of original repo: a.c and b.h.

New repo history:

0. darcs init
1. Push #5 from original to new.

Current contents of new repo: a.c and a.h.  Patch #5 depends on
Patches #1, #2, and #3 (by hypothesis, it's possible that it doesn't
depending on the nature of Patch #3), but (definitely, by darcs's
design) not on Patch #4.  Cooking this example to give more subtle
breakage (eg, all contained within a single file) is left as an exercise.

If you must push due to firewall or something, then either initialize
the new repo with `darcs put', or tag the existing repository and push
the tag to the new repo.


-- 
School of Systems and Information Engineering http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.

_______________________________________________
darcs-users mailing list
[email protected]
http://www.abridgegame.org/mailman/listinfo/darcs-users

Reply via email to