سؤال

أنا أكتب بعض كود C # لأداء ارتكاب متعددة إلى SVN في تمريرة واحدة، مثل الأداة svnmucc. حتى الآن كنت أستخدم sharpsvn للقيام بقية الاتصالات اللازمة مع SVN، لذلك أفكر في أنني أستطيع الاستفادة منه لإنجاز ما يلي:

كيف يمكنني الحصول على بيانات الاعتماد (اسم المستخدم، كلمة المرور) التي تستخدمها Sharpsvn؟

أود أن أفعل شيئا مثل هذا:

using (SvnClient svnClient = new SvnClient())
{
    SomeFictitiousCredentialsClass credentials = svnClient.Authentication.FictitiousGetCachedCredentialsMethod();

    // Call my code that performs svnmucc-like work here, passing username and password
    // obtained from 'credentials' variable.
}
هل كانت مفيدة؟

المحلول

لا يحتوي Sharpsvn على واجهة برمجة تطبيقات توفر لك بيانات الاعتماد من التخريب. معظمها ينفذ API LIBSVN_Client، وعلى هذا المستوى عدم الوصول إلى هذه البيانات.

يحصل Sharpsvn على رد اتصال من مكتبات التخريب عند حاجة هذه بيانات الاعتماد؛ في معظم الحالات بعد فشل مخزن كلمة المرور المدمجة في المصادقة.

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

sharpsvn نفسها ليس لديها دعم svnmucc حتى الآن. (كان هناك بعض الحديث عن شخص يحب إضافته إلى Sharpsvn، لكنني لم أحصل على أي أخبار حول هذا مؤخرا)

نصائح أخرى

في حين أن الإجابة الأخرى لا تزال صالحة لجميع الإصدارات الحالية من sharpsvn، إلا أن دعم SVNMUCC قد هبطت للتو في قانون التطوير الخاص ب SPARPSVN. في وقت مبكر، سيكون من الممكن أداء SVNMUCC مثل العمليات من .NET.

using SharpSvn;

SvnCommitResult cr;
using (SvnMultiCommandClient mucc = new SvnMultiCommandClient("http://my-repos/svn/"))
{
    mucc.CreateDirectory("trunk");
    mucc.CreateDirectory("branches");
    mucc.CreateDirectory("tags");
    mucc.CreateDirectory("trunk/src");
    mucc.SetProperty("", "svn:auto-props", "*.cs = svn:eol-style=native");
    mucc.SetProperty("", "svn:global-ignores", "bin obj");

    mucc.Commit(out cr); // Commit r1
}
using (SvnClient client = new SvnClient())
{
   client.CheckOut("http://my-repos/svn/", @"C:\wc");
}

يوجد بناء جملة مختلف قليلا إذا كنت ترغب في إجراء العملية من SVNClient موجودة، ولكن هذه هي الفكرة العامة.

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