我有一個目錄包含來自遺留構建系統的文件。我想在SVN倉庫中重新創建此構建系統的時間線。爲此,我必須採取每個構建,提取其所有文件,將它們放在合理的目錄結構中,將整個目錄結構提交到svn,併爲每個構建創建標記(以便輕鬆識別它們)。現在,我可以從該系統獲取文件,將它們放入目錄結構中,並且我試圖使用SVNKit將整個目錄放入SVN中(因爲整個同步系統是使用Java代碼的系統)。無法提交與SVNKit的目錄樹
所以,我做的是
- 將所有新文件使用
SVNWCClient.doAdd(main.workDirectory, true, false, false, SVNDepth.INFINITY, false, false /* we only add files below this path */)
- 然後commiting使用
SVNCommitClient.doCommit(changedFiles, false, null, commitProps, null, false, true, SVNDepth.INFINITY)
不幸的是整個目錄到SVN,這是行不通的那麼好..
確實,每次我嘗試調用這些方法時,我都會得到
Exception in thread "main" org.tmatesoft.svn.core.SVNException: svn: Commit failed (details follow):
svn: 'E:\JavaWorkspace\workDirectory\subpath\deep\below\initial\path' is not under version control
and is not part of the commit,
yet its child is part of the commit
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:85)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:69)
at org.tmatesoft.svn.core.wc.SVNCommitClient.doCollectCommitItems(SVNCommitClient.java:1236)
at org.tmatesoft.svn.core.wc.SVNCommitClient.doCommit(SVNCommitClient.java:825)
at com.perigee.svnsync.SvnExecutor.commit(SvnExecutor.java:229)
at com.perigee.svnsync.SvnSynchronizer.examineRelease(SvnSynchronizer.java:40)
Caused by: org.tmatesoft.svn.core.SVNException: svn: 'E:\JavaWorkspace\workDirectory\subpath\deep\below\initial\path' is not under version control
and is not part of the commit,
yet its child is part of the commit
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
at org.tmatesoft.svn.core.internal.wc.SVNCommitUtil.harvestCommitables(SVNCommitUtil.java:546)
at org.tmatesoft.svn.core.wc.SVNCommitClient.doCollectCommitItems(SVNCommitClient.java:1208)
請注意,當我使用TortoiseSVN查看這個文件夾時,它看起來像是一個完全「正常」的文件夾以添加SVN ...此外,我能夠使用TortoiseSVn提交根目錄及其所有子項沒有最小的問題。那麼,是否可以/應該更改我的代碼以使其工作?