كيفية تعيين صاحب SVN كرست باستخدام مكتبة SharpSVN في ج #

StackOverflow https://stackoverflow.com/questions/824386

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا استخدم مكتبة SharpSvn من CollabNET. وأود أن وضع مؤلف المراجعة في حين يرتكب، ولكن أنا دائما في نهاية المطاف مع الالتزام باستخدام اسم المستخدم ويندوز بلدي.

وهذا لا يعمل بالنسبة لي:

System.Net.NetworkCredential oCred = new
    System.Net.NetworkCredential("user"​, "pass");
client.Authentication.DefaultCredentials = oCred;

ولقد حاول أيضا:

client.SetProperty("", "svn:author", "user");

ولكن أحصل على خطأ التي تستهدف (الوسيطة الأولى) سيئة.

وهكذا يمكن أن تقولوا لي كيفية تعيين المستخدم مؤلف من الالتزام مستودع التخريب في ج #؟

هل كانت مفيدة؟

المحلول

وهذا كله يعتمد على كيفية الاتصال المخزون الخاص بك، ومستودع هو المسؤول عن إضافة اسم المستخدم إلى إعادة النظر. (وعادة ما نسخ أوراق الاعتماد للاتصالات ولكن لا يجب أن نفعل ذلك).

عند استخدام ملف: /// مستودع (والذي هو عادة لا ينصح - انظر والتخريب كتاب ) يمكنك العمل حول هذا مباشرة على ارتكاب.

using (SvnClient client = new SvnClient())
{
    client.Authentication.Clear(); // Clear predefined handlers

    // Install a custom username handler
    client.Authentication.UserNameHandlers +=
        delegate(object sender, SvnUserNameEventArgs e)
        {
            e.UserName = "MyName";
        };

    SvnCommitArgs ca = new SvnCommitArgs { LogMessage = "Hello" }
    client.Commit(dir, ca);
}

إذا قمت بالاتصال مستودع بعيد يمكنك تغيير مؤلف المراجعة عند تثبيت ربط ما قبل revprop تغيير في المستودع (انظر <لأ href = "http://svnbook.red-bean.com/ "يختلط =" noreferrer "> والتخريب كتاب )

using (SvnClient client = new SvnClient())
{
    client.SetRevisionProperty(new Uri("http://my/repository"), 12345,
                              SvnPropertyNames.SvnAuthor,
                              "MyName");

    // Older SharpSvn releases allowed only the now obsolete syntax
    client.SetRevisionProperty(
        new SvnUriTarget(new Uri("http://my/repository"), 12345),
        SvnPropertyNames.SvnAuthor,
        "MyName");

}

[2009-08-14] للمزيد من البيانات SharpSvn الأخيرة أيضا تسمح هذه:

using (SvnRepositoryClient rc = new SvnRepositoryClient())
{
   SvnSetRevisionPropertyRepositoryArgs ra;
   ra.CallPreRevPropChangeHook = false;
   ra.CallPostRevPropChangeHook = false;
   rc.SetRevisionProperty(@"C:\Path\To\Repository", 12345,
                         SvnPropertyNames.SvnAuthor, "MyName", ra);
}

وهذا المثال الأخير يفترض الوصول إلى الملفات مباشرة إلى مستودع، ولكنه يتجاوز السنانير مستودع لتحقيق الأداء الأمثل.

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