سؤال

أريد الالتزام بتغييرات نسخة العمل في جهاز الكمبيوتر الخاص بي إلى المستودع.المستودع موجود في عنوان 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");

نصائح أخرى

حجة التغيير تعمل كمرشح. سيتم تشغيل الملفات فقط التي يتم وضع علامة عليها في رواد التغيير.

للالتزام يمكنك فقط توفير أهداف متعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top