سؤال
أريد الالتزام بتغييرات نسخة العمل في جهاز الكمبيوتر الخاص بي إلى المستودع.المستودع موجود في عنوان URL وأنا أفعل ذلك الآن:
using (SvnClient client = new SvnClient())
{
SvnCommitArgs ca = new SvnCommitArgs();
ca.ChangeLists.Add(workingcopydir + filename);
ca.LogMessage = "Change";
client.Add(workingcopydir + filename);
try
{
client.Commit(workingcopydir, ca);
//, ca, out resultado
}
catch (Exception exc)
{
MessageBox.Show(this, exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
لكنه لا يعمل، عند الانتهاء يتم إضافة الملف ولكن لا يتم الالتزام به.لماذا؟شكرًا!!!:)
المحلول
FWIW، أفعل ذلك على النحو التالي:
public bool Add (string path)
{
using(SvnClient client = NewSvnClient()){
SvnAddArgs args = new SvnAddArgs();
args.Depth = SvnDepth.Empty;
args.AddParents = true;
return client.Add(path, args);
}
}
public bool Commit (string path, string message)
{
using(SvnClient client = NewSvnClient()){
SvnCommitArgs args = new SvnCommitArgs();
args.LogMessage = message;
args.ThrowOnError = true;
args.ThrowOnCancel = true;
try {
return client.Commit(path, args);
} catch(Exception e){
if( e.InnerException != null ){
throw new Exception(e.InnerException.Message, e);
}
throw e;
}
}
}
ثم أسميها مثل:
repo.Add("some folder");
...
repo.Commit("base working copy");
نصائح أخرى
حجة التغيير تعمل كمرشح. سيتم تشغيل الملفات فقط التي يتم وضع علامة عليها في رواد التغيير.
للالتزام يمكنك فقط توفير أهداف متعددة.
لا تنتمي إلى StackOverflow