提交文件无法正常工作

时间:2015-01-20 21:32:38

标签: c# sharpsvn

我试图将项目的更改提交到我的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;
        }
    }
}

疑似问题: 从看这个和谷歌我怀疑问题存在,因为文件没有被添加" svn控制,但我不确定。

是这样的吗?如果是这样,我将如何添加需要添加的文件?我还假设删除/修改的文件需要类似的东西,这是正确的,我也将如何添加它?

1 个答案:

答案 0 :(得分: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));