سؤال

ونحن نستخدم إس: الظواهر إلى مراجعات معينة من مكتبة، على سبيل المثال مثل

xyzlib -r12345 https://asdf.asdf.local/xyzlib/trunk/

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

عند تشغيل svn update بعد ارتكابها، وستزول التغييرات في نسخة العمل بسبب التخريب يعود كل شيء الى مراجعة 12345. لذلك لا أرى التغييرات نفسك كنها لا تزال في رأسه، وهو أمر سيء.

هل من الممكن لا سمح يرتكب فقط عندما الخارجية لا يشير إلى مراجعة الرأس؟

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

المحلول

لهذه الأنواع من التصديقات وأود أيضا أن يوصي قبل ارتكاب هوك، ولكن بدلا من كتابة السيناريو الذي يمكن أن تتحول بسهولة لأنه من المستحيل أن نفهم أوصي باستخدام مكتبة مثل SVNKit - <وأ href = "HTTP: / /svnkit.com/ "يختلط =" نوفولو noreferrer "> http://svnkit.com/ (وإذا كنت تعرف جافا).

ولقد كتبت عدة قبل الالتزام السنانير نفسي باستخدام هذه المكتبة وأنه من السهل جدا للعمل مع. أن تكتب برنامج جافا runnable الصغيرة التي يتم استدعاؤها من قبل ارتكاب هوك من التخريب. فمن السهل لاستخراج مثل خصائص أو أجزاء من URL للقيام التحقق من صحة ورفض الالتزام إذا كان لا ينطبق على بك "قواعد".

ونلقي نظرة على الطبقات SVNLookClient وSVNChangeEntry - (. استخراج مثل معلومات عن ارتكاب في التقدم) لديهم وسائل للحالات الأكثر شيوعا

نصائح أخرى

هل يمكن أن تجرب شيئا من هذا القبيل: استخدام <لأ href = "http://xrunhprof.wordpress.com/2008/06/20/forbid-modification-of-tags-in-subversion/" يختلط = "نوفولو noreferrer "> قبل ارتكاب النصي لمعرفة ما اذا كان ارتكاب هو الذهاب الى العلامة. إذا كان الأمر كذلك، ثم تفشل بها وتقديم رسالة. اقرأ المزيد عن بعض السنانير التخريب. سيكون لديك لإعادة إرسال التعبير المعتاد بحيث يفشل ما إذا كان لها لن يرأس بدلا من الفشل إذا كان علامة.

$SVNLOOK changed -t “$TXN” “$REPOS” | egrep -v “^[AD][[:space:]]+(.*/)?tags/[^/]+/$” | egrep “^[^[:space:]]+[[:space:]]+tags/[^/]+/.+”
if [ $? -eq 0 ] ; then
echo >&2 “***************************************”
echo >&2 “* Modification of tags is not allowed *”
echo >&2 “***************************************”
exit 1
fi

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

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

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