سؤال

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

لقد قرأت القليل عن كيفية عملهم الآن، وأعتقد أنني أفهم المفهوم جيدًا.ما لست متأكدًا منه بنسبة 100% هو كيفية ربط المراجعات المختلفة للمستودعات المتعددة معًا.

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

أقوم بإنشاء عدة إصدارات من المنتج على مر السنين، وفي كل مرة أشير إلى أحدث إصدار من المكتبة.على الرغم من أنني يجب أن أعود يومًا ما وأتحقق من إصدار المنتج 1، عن طريق تحديد المراجعة الصحيحة يدويًا.عندما أفعل ذلك، ما هو إصدار المكتبة الذي سأحصل عليه، HEAD أم المراجعة التي استخدمتها عندما قمت بإنشائها في المرة الأولى؟

أتمنى أن أكون مطورًا جيدًا وأتذكر وضع علامة على كل إصدار من إصدارات المنتج الذي أقوم بإصداره.عندما أقوم بتطبيق علامتي "Product-1-0-0" على المستودع، هل يتم وضع علامة على المراجعة الصحيحة لمستودع المكتبة أيضًا؟إذا قمت لاحقًا بفحص المنتج استنادًا إلى علامة "المنتج-1-0-0"، فهل سيتم سحب المراجعة الصحيحة للمكتبة باستخدامه؟

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

المحلول

وماذا لديك لمشاهدة لمع svn:externals هو أن تحتاج إلى تحديد صراحة مراجعة إذا كنت تريد شيئا آخر غير الجذع. جوجل "تعلق إس: الظواهر" للحصول على التفاصيل. إذا كنت تستخدم نسخة حديثة إلى حد ما، 1.5 أو أحدث IIRC، ثم الظواهر النسبية وعلى الأقل معتمدة. الإصدارات القديمة، مثل تلك التي أستخدمه حاليا، تتطلب منا أن نعلق صراحة المراجعة باستخدام الخيار -rNNNNN على الممتلكات svn:externals ل <م> كل اللعينة مجلد .

ولقد انتهى الأمر باستخدام تعديل لالمخطوطة اسمه svncopy.pl من tigris.org لبذل كل ما لدينا المتفرعة ووضع العلامات. انها ليست سيئة ولكن أتمنى أن كنا نعرف مقدار العمل الذي كان عليه قبل قررنا استخدامها بكثافة.

نصائح أخرى

يمكنك استخدام محددات التاريخ لضمان حصولك على المراجعات المقابلة عند التحديث.

لقد فعلنا ذلك من أجل أداة تقوم بتشغيل PC-Lint؛نود تشغيله على كل مراجعة حتى نتمكن من اختلاف النتائج.

إنه أمر بغيض بعض الشيء في تنفيذه - نحن:

  • تحديد سرعة نسخة العمل (باستخدام svnversion)
  • تحديد ما هو معدل دوران الرأس (باستخدام svn info)
  • احصل على الطوابع الزمنية لجميع المراجعات حتى الرأس (باستخدام svn log)
  • قم بزيادة الطوابع الزمنية بمقدار 0.999 ثانية للتأكد من حصولنا على المراجعة (ياي السحر!)
  • التحديث لكل مراجعة (باستخدام svn update -r {sometimestamp})
  • قم بتشغيل PC-Lint على نسخة العمل، أو الفرق، أو البريد الإلكتروني، أو تشغيل klaxons، أو أيًا كان

(التعقيد يستحق روب غولدبرغ، أليس كذلك؟التصويتات الإيجابية والامتنان الدائم لأي شخص يمكنه اقتراح حل أفضل.)

قد تكون مهتمًا أيضًا بقسم كتاب svn الخاص بـ الوتد والمراجعات المنطوقة, ، والذي اكتشفته للتو - يبدو أن هذه إضافة جديدة نسبيًا.

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

وإس: لا يتم تعيين إصدار الظواهر في التخريب. إذا تغير شخص مراجعة أو علامة واحدة من الظواهر الخاصة بك لديك أي وسيلة لمعرفة ما كان عليه قبل التغيير.

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

وفقط احترس إس يستند إلى ملف: الظواهر في 1.6. انها تبدو مفيدة جدا، ولكن أنا مجرد ضرب هذا الخطأ اليوم :(

ويتناول هذا المقال مسألة طيف ...

<وأ href = "http://www.simple-talk.com/dotnet/.net-framework/tortoisesvn-and-subversion-cookbook-part-4-sharing-common-code/" يختلط = "نوفولو "> http://www.simple-talk.com/dotnet/.net-framework/tortoisesvn-and-subversion-cookbook-part-4-sharing-common-code/

وسيث

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