Re: Error copying: "790.537269 vcp: no DB_File entry for svn:svn://jc.ngo.org.uk; /nik/libtap/trunk/src/t/plan/Makefile@204"

Tyler MacDonald <[email protected]> Wed, 21 Jun 2006 16:22:06 -0700
Newsgroups gmane.comp.version-control.revml
Message-ID <[email protected]>
Tyler MacDonald <[email protected]> wrote:
> vcp svn:svn://jc.ngo.org.uk:/nik/libtap/trunk/... p4://depot/main/contrib/libtap/...
> 
> It gets along for awhile, but then crashes at this point:
> 
> vcp: writing revisions:  [#|        ]  44/433 change 1027

So I tried exporting the repo to revml instead:
vcp svn:svn://jc.ngo.org.uk:/nik/libtap/trunk/... revml:libtap.xml

I've put the resulting RevML file [2.2MB] here, so that we don't need to
keep hitting Nik's svn repo to debug this:

http://www.yi.org/~faraway/libtap.xml

Also, I've put the vcp.log files that were written for going from SVN->RevML
and RevML->P4 online as well:

http://www.yi.org/~faraway/vcp-svn-to-revml.log
http://www.yi.org/~faraway/vcp-svn-to-revml.log

That process completes fine, but then when I try to import the revml file
into my perforce repository, it crashes with a different error. (I am using
the latest code in public.perforce.com... despite the fact that it was last
edited six days ago, it's saying this is a version from 2004):

$ vcp revml:libtap.xml p4://depot/main/contrib/libtap/...
vcp v0.9, change number 4232 (2004/03/18)
vcp: running p4 clients
vcp: appending required ChangeSets, StringEdit filters
Patch line disagrees with source line 173:
   source file:
'/home/faraway/vcp_state/revml%58%%58%libtap%46%xml/source_files/src/tap.c/nik/libtap/trunk/src/196'
   patch file :
'/home/faraway/vcp_state/revml%58%%58%libtap%46%xml/source_files/src/tap.c/nik/libtap/trunk/src/delta'
   result file:
'/home/faraway/vcp_state/revml%58%%58%libtap%46%xml/source_files/src/tap.c/nik/libtap/trunk/src/198'
   source line: ""
   patch  line: "\x09printf("# _expected_tests(%d)\n", tests);"
 at /usr/local/share/perl/5.8.8/VCP/Source/revml.pm line 556

I tracked down the patch code (VCP/Patch.pm) and replaced it with this, in
desparate hopes that it would work:

sub vcp_patch {
  my($source_fn, $result_fn, $patch_fn) = @_;
  system("patch -p0 --ignore-whitespace $source_fn -o $result_fn < $patch_fn");
  croak "patch failed" if $?;
  return 1;
}

Well, it's output was spammy, but it *did* work! However, once it started
trying to check the files into perforce, it crashed at the exact same spot:

vcp: no DB_File entry for
svn:svn://jc.ngo.org.uk;/nik/libtap/trunk/src/t/plan/Makefile@204
 at /opt/vcp/share/perl/5.8.8/VCP/RevMapDB.pm line 58
	[...]

The *only* occurance of "Makefile@204" in either logfile is that one line...
so it seems like the SVN export is not creating a Makefile@204, yet the P4
import is expecting one?

I'm back to square one. Why would this one file not have this entry?

	Thanks,
		Tyler