كيف يمكنني استخدام ربط الالتزام بالبدء في TortoiseSVN لإعداد إدخال سجل مخصص؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

أرغب في أتمتة TortoiseSVN كجزء من عملية الالتزام.على وجه التحديد، أرغب في إنشاء إدخال سجل لمربع حوار الالتزام ديناميكيًا.

أعلم أنه يمكنني تشغيل مربع حوار الالتزام إما من سطر الأوامر أو عن طريق النقر بزر الماوس الأيمن على مجلد واختيار svncommit.

أرغب في استخدام ربط الالتزام بالبدء لإعداد إدخال سجل.اعتقدت أن هذا نجح عن طريق تمرير اسم ملف إدخال في متغير MESSAGEFILE ولكن عندما أقوم بإضافة برنامج نصي للربط، لا يمكنه رؤية هذا المتغير (تم تشغيل الخطاف بنجاح بعد النقر بزر الماوس الأيمن واختيار svncommit).

عندما أحاول استخدام سطر الأوامر، أستخدم المعلمة /logmsgfile ولكن يبدو أنه ليس لها أي تأثير.

أنا أستخدم tortoisesvn 1.5.3.

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

المحلول

يبدو أن سوء فهمي لواجهة برمجة التطبيقات هو الذي سبب المشكلة.

حل:
1) لقد أضفت برنامجًا نصيًا لربط الالتزام ببدء التشغيل إلى TortoiseSVN باستخدام واجهة المستخدم الرسومية للخطافات في منطقة الإعدادات بقائمة النقر بزر الماوس الأيمن.

2) يتلقى البرنامج النصي 3 أجزاء من المعلومات:مسار ملف الرسائل CWD
لمزيد من التفاصيل انظر: يدوي
يتم تمريرها كوسائط سطر أوامر إلى البرنامج النصي - لسبب ما كنت أعتقد أنه تم تعيينها كمتغيرات بيئية مؤقتة.

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

عندما يظهر مربع حوار الالتزام، يكون النص المخصص موجودًا.

3) من الأفضل أن يتم إطلاق tortoisesvn من البرنامج النصي مباشرةً في مربع حوار الالتزام:
على سبيل المثال[ السلحفاة / الأمر: الالتزام / المسار:./ كلوسيونند:1 ]
لا تزال تسمى السنانير.

نصائح أخرى

إذا كنت تحتاج فقط إلى قالب ثابت، فقم بتعيين خاصية tsvn:logtemplate.

بالنسبة للإنشاء الديناميكي، تعمل المعلمة /logmsgfile، ولكن يبدو أنها تحتاج إلى المسار الكامل.قد يكون الملف الدفعي الذي يبدو كما يلي مناسبًا لك.

GenerateLogMsg.exe > tmp.msg
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top