Hello, I'm testing Fossil by migrating a bunch of Mercurial repositories. Unlike Git, Mercurial tracks file renames. However, in order to create a Fossil repository I have to follow the Mercurial -> Git -> Fossil path.
On the first conversion I lose file copying/renaming information. But the "git fast-export" command has the -M and -C switches to enable copy/rename detection heuristics. Therefore, the last conversion step looks like: git fast-export -M -C --all | fossil import --git ../myrepo.fossil The good news is that the heuristics work, as Fossil fails with the following message: cannot handle R records, use --full-tree Which would be understandable if it was a completely unsupported caes. Nevertheless, I searched for the place where the error originates and I found this: }else if( memcmp(zLine, "R ", 2)==0 ){ int nFrom; import_prior_files(); z = &zLine[2]; zFrom = next_token(&z); zTo = rest_of_line(&z); i = 0; nFrom = strlen(zFrom); while( (pFile = import_find_file(zFrom, &i, gg.nFile))!=0 ){ if( pFile->isFrom==0 ) continue; pNew = import_add_file(); pFile = &gg.aFile[i-1]; if( strlen(pFile->zName)>nFrom ){ pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); }else{ pNew->zName = fossil_strdup(pFile->zName); } pNew->zPrior = pFile->zName; pNew->isExe = pFile->isExe; pNew->isLink = pFile->isLink; pNew->zUuid = pFile->zUuid; pNew->isFrom = 0; gg.nFile--; *pFile = *pNew; memset(pNew, 0, sizeof(*pNew)); } fossil_fatal("cannot handle R records, use --full-tree"); }else Then I tried commenting the call to fossil_fatal() and the import completed, but the old files were not removed. So, finally, my question is. What is that code lacking in order to correctly import copy and rename information? Regards. -- Isaac Jurado "The noblest pleasure is the joy of understanding." Leonardo da Vinci _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users