لن يتم تشغيل خطاف ما بعد الالتزام للتخريب عند الالتزام، ويعمل البرنامج النصي لأنه يمكنني تشغيله في سطر الأوامر

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

سؤال

لقد قمت للتو بإنشاء مستودع جديد.الخادم الخاص بي هو Ubuntu 12.04 32 بت.أريد أن تكون التزاماتي حية بمجرد ارتكابها.يتم تحقيق ذلك عن طريق إنشاء نسخة عمل في دليل html العام الخاص بي، وتحديث نسخة العمل تلك بواسطة خطاف ما بعد الالتزام.لقد قمت بإعداد ذلك باستخدام التعليمات هنا:

http://www.frenssen.be/content/using-subversion-automatically-update-live-website

تكمن المشكلة في أن مرحلة ما بعد الالتزام لن تعمل عند تنفيذ مشروعي. مشروعي يلتزم على ما يرام.أعلم أن البرنامج النصي هو برنامج نصي صالح أيضًا، لأنه يمكنني تشغيله

env ./post-commit

داخل hooks الدليل ويتم تحديثه بشكل صحيح.

اعتقدت أنه قد يكون أمرًا يتعلق بالأذونات لذا فقد استخدمته على نطاق واسع chown لتتآكد من ذلك www-data هو مالك:

the repo /home/svn/repo2
the working copy /var/www/html
the hook /home/svn/repo2/hooks/post-commit
the update binary /home/svn/autoupdate/autoupdate

ولكن لا شيء حتى الآن.لقد كانت التزاماتي ناجحة، لكن الخطاف لا يعمل أبدًا.يبدو نص الخطاف الخاص بي كما يلي:

#!/bin/sh
/home/svn/autoupdate/autoupdate

يبدو أن كل عمليات البحث على Google تشير إلى مشكلة في الأذونات ولكن لا يمكنني اكتشاف هذه المشكلة.

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

المحلول

هل يمكنك تكرار مثال هذا الرجل ومعرفة ما إذا كان يعمل على الإطلاق؟
mikewest.org/2006/06/subversion-post-commit-hooks-101

هل تحصل على خطأ عند الالتزام؟

إذا فشل ربط ما بعد الالتزام بالفعل، فأعتقد أنك ستشاهد دليلاً على ذلك في أي عميل كنت تستخدمه لإجراء عملية تسجيل الوصول.أشك تقريبًا في أن مرحلة ما بعد الالتزام لا يتم إطلاقها على الإطلاق.فقط للتحقق مرة أخرى، يجب تسمية الملف فعليًا باسم post-commit، وكله بأحرف صغيرة، وليس post-commit.tmpl.

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