Номер версии SVN меняется с каждым файлом
Я использую SVNKit для проверки файлов из одного репо SVN. другому.
Моя проблема в том что
версия целевого svn увеличивается с каждым файлом.
пример: я проверяю 5 файлов из репо. А до репо. B под одним обязательством. И я ожидаю версию Repo. B увеличился только на одну единицу, но на самом деле он превращается в 5 единиц.
вот мой код "кубики" используется для восстановления файлов информации, которую я хочу проверить.
for (int i=0; i<cubes.size();i++) {
souRepo.getFile(cubes.get(i).getLocalPath()+"/"+cubes.get(i).getLocalFile(),cubes.get(i).getLocalVer(), fileProperties, baos);
input = new ByteArrayInputStream(baos.toByteArray() );
SVNNodeKind nodeKind = tarRepo.checkPath( cubes.get(i).getLocalFile(), -1 );
editor = tarRepo.getCommitEditor(logMessage, new CommitMediator() );
editor.openRoot(-1);
if ( nodeKind == SVNNodeKind.NONE ) {
editor.addFile(cubes.get(i).getLocalFile(), null, -1);
} else {
editor.openFile(cubes.get(i).getLocalFile(), -1);
} // end of else
editor.applyTextDelta(cubes.get(i).getLocalFile(), null);
String baseChecksum = deltaGenerator.sendDelta(cubes.get(i).getLocalFile(), input, editor, true);
editor.textDeltaEnd(cubes.get(i).getLocalFile() );
editor.closeFile(cubes.get(i).getLocalFile(), baseChecksum);
info = editor.closeEdit();
}
Любая идея будет оценена ~~
1 ответ
Решение
Код показывает, что вы фиксируете один файл на коммит. Попробуйте что-то вроде этого:
editor = tarRepo.getCommitEditor(logMessage, new CommitMediator() );
editor.openRoot(-1);
for (int i=0; i<cubes.size();i++) {
souRepo.getFile(cubes.get(i).getLocalPath()+"/"+cubes.get(i).getLocalFile(),cubes.get(i).getLocalVer(), fileProperties, baos);
input = new ByteArrayInputStream(baos.toByteArray() );
SVNNodeKind nodeKind = tarRepo.checkPath( cubes.get(i).getLocalFile(), -1 );
if ( nodeKind == SVNNodeKind.NONE ) {
editor.addFile(cubes.get(i).getLocalFile(), null, -1);
} else {
editor.openFile(cubes.get(i).getLocalFile(), -1);
} // end of else
editor.applyTextDelta(cubes.get(i).getLocalFile(), null);
String baseChecksum = deltaGenerator.sendDelta(cubes.get(i).getLocalFile(), input, editor, true);
editor.textDeltaEnd(cubes.get(i).getLocalFile() );
editor.closeFile(cubes.get(i).getLocalFile(), baseChecksum);
}
info = editor.closeEdit();