سؤال

لقد حصلت على بعض الأشياء التي تم إعدادها والتي تحدد الأسماء الأسماء الديناميكية اعتمادًا على نوع VC Repo الذي يحتوي عليه CWD - على سبيل المثال ، "D" يعمل "SVN Diff" أو "GIT Diff" ، اعتمادًا. (مرتكز على منشور المدونة هذا, ، إذا كان أي شخص مهتم ...)

أرغب في تحديد بعض الأسماء المستعارة بشكل مختلف اعتمادًا على ما إذا كنت في ريبو غيت مقابل ريبو GIT-SVN. هل هناك طريقة سهلة لمعرفة الفرق بين الاثنين؟

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

المحلول

يجب أن تكون حذراً بعض الشيء عند تحديد المستودعات التي تمثلها مستودعات GIT-SVN بالضبط. قد يحتوي المستودع على أكثر من مستودع SVN.

لن يعمل حل Kafka إلا إذا تم استنساخ مستودع SVN مع خيار -S أو -Layout ، والذي يوجد فيه بالفعل هو فرع trunk.

لن تعمل إجابة CodeLogic إلا إذا كان هناك مستودع SVN يسمى svn - ليس هناك حاجة إلى أن هذا صحيح.

أسهل طريقة للتحقق إذا كانت هناك هو إن svn-remote في التكوين هو:

$ git config --get-regexp ^svn-remote

سيجد ذلك أي مستودع GIT-SVN الذي تم تكوينه ، كل ما يسمى. سوف يخرج مع الحالة 0 إذا كان هناك تطابق ، و 1 إذا لم يكن هناك تطابق.

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

$ git rev-list -1 --grep='git-svn-id' HEAD

ولكن هذا ربما يكون معقدا بعض الشيء. انت صاحب القرار.

نصائح أخرى

ربما يمكنك استخدام إخراج git config أمر للتمييز بين git و git-svn repo.

git config --get svn-remote.svn.url

يجب أن تعيد عنوان URL SVN الذي يتم مزامنته ، إذا كان هناك واحد.

يوجد أيضًا فرع يسمى Trunk وفرع يسمى Trunk@[Rev]. ومع ذلك ، أعتقد أن نهج CodeLogics أسهل وأنظف.

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