2015-01-20 139 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));