2015-01-20 247 views
0

我嘗試將更改項目提交到我的svn服務器,但它似乎沒有工作。提交文件無法正常工作

測試: 我運行下面的文件夾中的代碼中什麼也沒有改變,沒有任何反應不如預期,然後,我創建一個新的文件夾,然後再次運行該代碼,這一次似乎沒有任何事情發生了,代碼運行並返回,沒有顯示它工作的錯誤。

public bool svnCommitProject(String project, String message) 
{ 
    using (SvnClient client = new SvnClient()) 
    { 
     try 
     { 
      SvnCommitArgs args = new SvnCommitArgs(); 
      args.LogMessage = message; 
      client.Authentication.ForceCredentials(Properties.Settings.Default.Username, Properties.Settings.Default.Password); 
      return client.Commit(Properties.Settings.Default.LocalFolderPath + Properties.Settings.Default.Username + @"\" + project, args); 
     } 
     catch 
     { 
      MessageBox.Show("ERROR"); 
      return false; 
     } 
    } 
} 

懷疑的問題: 從看着這個和google我懷疑存在問題,因爲文件處理不當被「添加」到svn的控制,但林不知道。

這是這種情況?如果是的話,我將如何去添加需要添加的文件?我也假設類似的東西會被需要刪除/修改的文件,這是否正確,我怎麼會添加這個呢?

+0

「沒有按預期發生」 - 確定,那麼**會發生什麼? – alroc 2015-01-26 02:13:45

+0

@alroc如果您閱讀我的文章,我在測試部分說過,代碼會運行並且錯誤消息不會顯示。這意味着catch部分沒有被使用,並且try中的代碼也是如此。但沒有任何東西是合成的,svn文件夾中有新文件,但沒有提交的日誌和歷史記錄。如果刪除整個文件夾並再次檢出,新文件不在那裏。沒有錯誤,什麼也沒有發生,沒有提交 - 什麼也沒有。 – NoLiver92 2015-01-26 09:40:28

回答

0

Find files not added to subversion

是,文件只投進了本地工作目錄不告訴SVN承諾。

Collection<SvnStatusEventArgs> filesStatuses = new Collection<SvnStatusEventArgs>(); 
if (!client.GetStatus(localDir, new SvnStatusArgs 
{ 
    Depth = SvnDepth.Infinity, 
    RetrieveRemoteStatus = true, 
    RetrieveAllEntries = true 
}, out workDirFilesStatus)) 
{ 
    throw new SvnOperationCanceledException("SvnClient.GetStatus doesn't return anything."); 
} 

filesStatuses.Where(i => i.LocalContentStatus == SvnStatus.NotVersioned).ToList().ForEach(i => svnC.Add(i.Path)); 
filesStatuses.Where(i => i.LocalContentStatus == SvnStatus.Missing).ToList().ForEach(i => svnC.Delete(i.Path));