Ticket #36 (closed defect: fixed)

Opened 5 years ago

Last modified 2 years ago

svn => darcs breakage when upstream file becomes a directory

Reported by: stephen_purcell@… Owned by: lele
Priority: critical Milestone: VersionOne
Component: svn Version: 0.9
Keywords: Cc:

Description

I'm tailorizing the Ruby on Rails SVN repository into darcs format, but I get breakage on upstream changeset 2587 (big repository...):

5:51:16 [I] Applying pending upstream changesets
15:51:16 [I] Changeset "2587"
15:51:16 [I] Log message: r3619@sedna:  jeremy | 2005-10-14 14:41:24 -0700
 move scripts
 r3622@sedna:  jeremy | 2005-10-14 14:54:48 -0700
 remove script/perform and script/process in favor of script/perform/profile, etc.
15:51:16 [I] /export/home/steve/projects/tailored/upstream/rails $ svn update --ignore-externals --revision 2587 .
15:51:18 [I] [Ok]
15:51:18 [I] $ rsync --delete --archive --exclude .svn --exclude _darcs /export/home/steve/projects/tailored/upstream/rails/ /export/home/steve/projects/tailored/rails
15:51:18 [I] [Ok]
15:51:18 [I] /export/home/steve/projects/tailored/rails $ darcs add --case-ok --not-recursive --quiet railties/bin/perform railties/bin/perform/benchmark railties/bin/perform/profile railties/bin/process railties/bin/process/reaper railties/bin/process/spawner railties/bin/process/spinner railties/lib/commands/perform/benchmark.rb railties/lib/commands/perform/profile.rb
15:51:18 [I] [Ok]
15:51:18 [I] /export/home/steve/projects/tailored/rails $ darcs add --case-ok --recursive --quiet railties/bin/perform
15:51:18 [I] [Ok]
15:51:18 [I] /export/home/steve/projects/tailored/rails $ darcs add --case-ok --recursive --quiet railties/bin/process
15:51:18 [I] [Ok]
15:51:18 [I] /export/home/steve/projects/tailored/rails $ darcs record --all --pipe
15:51:19 [W] [Status 1]
15:51:19 [C] Couldn't reply changeset
15:51:19 [C] Upstream change application failed
Failure applying upstream changes: /export/home/steve/projects/tailored/rails $ darcs record --all --pipe returned status 1

The underlying darcs error is this:

darcs: takeFile ./railties/bin/perform/benchmark-0 in /export/home/steve/projects/tailored/rails/_darcs/current: inappropriate type (Not a directory)

It turns out that './railties/bin/perform' was changed from a file to a directory in this changeset. "darcs wh -s" in the target repo gives:

M ./railties/Rakefile -2 +2
R ./railties/bin/perform
A ./railties/bin/perform/benchmark
A ./railties/bin/perform/profile
R ./railties/bin/process
A ./railties/bin/process/reaper
A ./railties/bin/process/spawner
A ./railties/bin/process/spinner
R ./railties/lib/commands/perform.rb
A ./railties/lib/commands/perform/benchmark.rb
R ./railties/lib/commands/perform/benchmarker.rb
A ./railties/lib/commands/perform/profile.rb
R ./railties/lib/commands/perform/profiler.rb
R ./railties/lib/commands/process.rb
M ./railties/lib/rails_generator/generators/applications/app/app_generator.rb -2 +3

I'm using the latest tailor source from your darcs repository. Thanks for the fantastic work on tailor. Let me know if I can provide any more info on this problem; I'd be happy to help, but don't know enough right now to submit a patch.

Change History

Changed 5 years ago by Lele Gaifax

  • component changed from tailor to svn

Can you point me to the repository, or attach here the svn log --xml --revision 2587 output?

I'd be inclined to split the change in two at the svn level, when this is the case: after all, svn is he only one the has the dubious "replace" event...

Changed 5 years ago by stephen_purcell@…

Hi Lele; the upstream repository is not under my control, but the changeset doesn't seem unreasonable -- looks like an atomic change. Of course, the way SVN represents it may be inelegant.

The tailor.conf I'm using is this (note the "trust-root: True"):

[DEFAULT]
verbose = True
root-directory = .
subdir = .
start-revision = INITIAL

[rails]
target = darcs:rails
source = svn:rails
state-file = rails.state

[darcs:rails]
repository = darcsrepo
subdir = rails

[svn:rails]
module = rails/trunk
repository = http://dev.rubyonrails.org/svn/rails
subdir = upstream/rails
trust-root = True

I don't think the 'svn log --xml' output will help you much, but here it is:

<?xml version="1.0" encoding="utf-8"?>
<log>
<logentry
   revision="2587">
<author>bitsweat</author>
<date>2005-10-14T18:58:07.139387Z</date>
<msg> r3619@sedna:  jeremy | 2005-10-14 14:41:24 -0700
 move scripts
 r3622@sedna:  jeremy | 2005-10-14 14:54:48 -0700
 remove script/perform and script/process in favor of script/perform/profile, etc.
</msg>
</logentry>
</log>

Changed 2 years ago by lele

  • status changed from new to closed
  • resolution set to fixed

This should be fixed by the new mechanism used by the darcs backend introduced with [1536].

Note: See TracTickets for help on using tickets.