>>>>> Scott Lamb writes:

    Scott> TRY 1 =====

    Scott> (Inefficiently) checking out the entire repository and
    Scott> using a before- commit hook to handle selecting the right
    Scott> files and adjusting the paths:

    Scott> ... This fails. It looks I didn't succeed in changing the
    Scott> entry.name completely. With verbose=True, I see this
    Scott> output:

    Scott> ...

    Scott> Note the last line, in which the entry names were not
    Scott> altered.

Uhm, two things: first, I'm afraid it's not enough to alter the name
of the entry as you did, but the concrete file on the filesystem
should be moved too; second, I see the reason for the misleading error
message: what happens is something like::

  for cs in pending_changesets:
    try:
      adapted = adapt_changeset(cs) # <- here happens the before-commit
      # here adapted is generally a *deepcopy* of the changeset
      replay_changeset(adapted)
    except:
      error("couldn't replay %s" % cs)

So effectively the error prints out the *original* cs, not the one it
tried to replay...

    Scott> TRY 2 =====

    Scott> Import revisions [579, 1132) with module="projects/sigsafe"
    Scott> then revisions (1132, head] with
    Scott> module="trunk/projects/sigsafe".

    Scott> Not real successful this way either. First, I noticed
    Scott> there's no "end- revision" property to go with
    Scott> "start-revision". There's also this:

Yes, this should be added, it's just so a common request! I needed
this just once, and used before-commit to cut off the tail of
changesets...

    Scott>      21:20:09 [I] /tmp/test $ svn log --verbose --xml
    Scott> --revision 579 21:20:09 [W] [Status 1] 21:20:09 [C]
    Scott> Checkout of sigsafe failed!

    Scott> It appears that "svn log --revision 579
    Scott> https://www.slamb.org/svn/ projects/[EMAIL PROTECTED]" succeeds,
    Scott> but "svn log --revision 579 https://
    Scott> www.slamb.org/svn/projects/sigsafe" looks for the history
    Scott> of the node at that path in head. It fails. The WC-relative
    Scott> path functions in the same way. The latter case seems
    Scott> pretty lame to me (should know what node I'm talking about
    Scott> from the revision of the wc), but that's how it is as of
    Scott> subversion 1.4.2.

Sorry, I'm not sure to understand the implications of this.


    Scott> TRY 3 =====

    Scott> produce with "svnadmin dump" and "svnadmin restore" a
    Scott> Subversion working copy with the history in one path, then
    Scott> run tailor. Seems doable in concept, but "svndumpfilter"
    Scott> doesn't have options for adjusting paths - just including
    Scott> and excluding them - so I'd need to roll my own tool.

IIRC, there was a svndumpfilter implemented in Python, that allowed
such things.

Anyway, have you tried using different nested working dirs? I mean
something like:

[proj_a]
source = svn:
target = hg:
root-directory = /tmp/test

[svn:proj_a]
repository = ...
module = ...
subdir = .

[hg:proj_a]
...
subdir = projects/


[proj_b]
source = svn:
target = hg:
root-directory = /tmp/test

[svn:proj_b]
repository = ...
module = ...
subdir = .

[hg:proj_b]
...
subdir = trunk/projects/


hth, and let me know if it does :)
ciao, lele.
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to