我试图将项目的更改提交到我的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控制,但我不确定。
是这样的吗?如果是这样,我将如何添加需要添加的文件?我还假设删除/修改的文件需要类似的东西,这是正确的,我也将如何添加它?
答案 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));