Invalid change ordering?

Dirk vss2svn at nogga.de
Wed Feb 7 05:51:25 EST 2007


Arrrgh, why has nobody pointed out, that the file is "copied" twice ;-).

Naturally that's the problem.

Since I have the converter output here in a private copy, I followed 
this file throughout the history, and it seems, that problems start 
after a delete while the file is in the orphan cache. ... I have to dig 
a little further, but naturally, that's the problem. Thanks for pointing 
it out.

Dirk



Stephen Lee schrieb:
> Scott Nowell wrote:
>> <<< Started new transaction, based on original revision 2750
>>      * adding path : labels/Ready for MS01 Validation Run ... done.
>>      * adding path : labels/Ready for MS01 Validation Run/UC00 ... done.
>>      * adding path : labels/Ready for MS01 Validation Run/UC00/Source 
>> ... done.
>>      * adding path : labels/Ready for MS01 Validation 
>> Run/UC00/Source/MicroCOS .
>> .. done.
>>
>> <SNIP about 100 lines from same rev 2750 >
>>
>>      * adding path : labels/Ready for MS01 Validation 
>> Run/MS01/Source/UnitTests/
>> Test/regress.bat ..COPIED... done.
>>      * adding path : labels/Ready for MS01 Validation 
>> Run/MS01/Source/UnitTests/
>> Test/Script.bat ..COPIED... done.
>>      * adding path : labels/Ready for MS01 Validation 
>> Run/MS01/Source/UnitTests/
>> Test/setenv.bat ...COPIED... done.
>> svnadmin: Invalid change ordering: new node revision ID without delete
>
> Check within the about 100 lines you snipped for two consecutive lines 
> that are the same.
>
> This looks like it could be the same as a problem I reported to the 
> list and toby filed as a defect:
> http://www.pumacode.org/projects/vss2svn/ticket/42
>
> Also, you (and anyone else with the same problem) may be interested in 
> the "TrimDupes" workaround I used for this problem (attached). You 
> would need a working C compiler, and replace the TrimDupe(...) calls 
> from main() with the duplicates that you get, in the order they are 
> imported.
>
> When I said my database imported almost perfectly on the most recent 
> dummy run, this was AFTER this filter which I had just automatically 
> done after the conversion.
>
> Now I've got perl running, I should probably look to rewrite this or 
> fix the underlying bug in vss2svn - the whole thing could probably 
> reduce to a single non-database-specific regexp.
>
> ------------------------------------------------------------------------
>
> #include <stdio.h>
> #include <fcntl.h>
> #include <io.h>
>
> void TrimDupe(const char *Trigger)
> {
>   const char *TrigPtr=Trigger;
>   char c;
>   while(fread(&c,1,1,stdin))
>   {
>     fwrite(&c,1,1,stdout);
>     if(!TrigPtr)
>       ;
>     else if(c!=*TrigPtr++)
>       TrigPtr=Trigger;
>     else if(!*TrigPtr)
>     {
>       fprintf(stderr,"MATCH FOUND: %s\n",Trigger);
>       // found the first trigger - look for 2nd, without using putchar
>       while(fread(&c,1,1,stdin))
>       {
>         if(c!=*TrigPtr++)
>           TrigPtr=Trigger;
>         else if(!*TrigPtr)
>         {
>           fprintf(stderr,"DUPE FOUND... continuing\n");
>           break;
>         }
>       }
>       break;
>     }
>   }
> }
>
> int main(void)
> {
>   _setmode( _fileno( stdin ), _O_BINARY );
>   _setmode( _fileno( stdout ), _O_BINARY );
>
>   TrimDupe("labels/PRE_UNITS/Plugins/Sdmxp/MotorRequest.h");
>   TrimDupe("labels/Release 2.31/ProComposer.NewStdDB");
>   TrimDupe(NULL);
>
>   return 0;
> }
> ------------------------------------------------------------------------
>
> _______________________________________________
> vss2svn-users mailing list
> Project homepage:
> http://www.pumacode.org/projects/vss2svn/
> Subscribe/Unsubscribe/Admin:
> http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org
> Mailing list web interface (with searchable archives):
> http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user



More information about the vss2svn-users mailing list