سؤال

لقد كنت أقود نفسي مجنونة خلال الأيام القليلة الماضية على هذا واحد. لقد انتهينا للتو من إعداد خادم التكامل المستمر في Hudson. لذلك يدير برنامج نصي البناء لكل تلتزم بالتحقق من صحة الالتزام. المشكلة هي أنها تتحقق من أن جميع الملفات في الريبو لها كل من svn:keywords = "Id" و svn:eol-style = "LF" الخصائص المحددة على الجميع .php الملفات ، التي عادة ما تكون رائعة (آخر مرة فعلت ذلك ، استخدمت Eclipse و SVN السلحفاة ، والتي لديها وظيفة SVN :: إضافة وظائف).

لكن المشكلة هي أنني اعتدت تمامًا على Netbeans. و Netbeans ليس لديه svn add الوظيفة التي يمكنني العثور عليها (إضافة ملفات تلقائيًا عند الالتزام). المشكلة هي أنه لا يمكنني إضافة الخصائص حتى تتم إضافة الملفات. إذا ارتكبت دون إضافة الخصائص ، فسوف يفشل البناء. لذا ، انتهى الأمر بفشل البناء في كل التزام آخر لأنني بحاجة إلى اتخاذ 5 خطوات (الالتزام ، الدعامة العودية ، الالتزام ، الاعتراف بالبناء الفاشل ، حذف البناء الفاشل) ، للقيام بشيء لا يتطلب عادة 2 (Propset ، الالتزام).

لا أريد حقًا العودة إلى Eclipse في هذه المرحلة ، ولكن عندما يستغرق الأمر 20 دقيقة للالتزام لأنني بحاجة إلى القيام بكل شيء 4 مرات ، فسوف يصبح العمر بسرعة ... هل هناك بعض الحلول التي أنا مفقود (أقل من إزالة فحص الممتلكات ، والتي ستهزم هذه النقطة ، لأنني أريد أن يتم تعيين تلك الممتلكات على أي حال)؟ أم أنا فقط سول؟ ...

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

المحلول

التخريب له ~/.subversion/config الملف الذي يسمح لك بتخصيص عدد من الإعدادات المختلفة ، من بينها بروبات السيارات, ، الخصائص التي يتم تعيينها تلقائيًا على الملفات بناءً على امتدادها:

لذلك ، على افتراض أن NetBeans يحترم هذا الملف ، يمكنك إخبار SVN بتعيين هذه الخصائص تلقائيًا عن طريق تغيير [auto-props] قسم ليشمل *.php = svn:eol-style=LF;svn:keywords=Id

علي سبيل المثال:

[auto-props]
# here's yours
*.php = svn:eol-style=LF;svn:keywords=Id
# and one with multiple keywords
*.c = svn:eol-style=native;svn:keywords=Author Date Rev Id HeadURL
# and one with a mime-type
*.png = svn:mime-type=image/png

تحديث:

يبدو أن Netbeans 6.9 يقرأ في ~/.subversion/config ملف على بدء ولا يتغير التقاط بدون إعادة تشغيل. بعد إعادة تشغيل NetBeans ، فإنه يلتقط بشكل صحيح محدد بروبات السيارات ويطبقهم على كل ملف تم إنشاؤه حديثًا.

تحديث 2:

يبدو أن NetBeans يقرأ من خلال كل من ملفات تكوين التخريب العالمية والشخصية (من بين العديد من ملفات التخريب الأخرى) عندما تبدأ. إليك جزءًا ذا صلة كما يراه Strace:

stat("/home/kibab/.subversion/config", {st_mode=S_IFREG|0644, st_size=4576, ...}) = 0
open("/home/kibab/.subversion/config", O_RDONLY) = 28
open("/etc/subversion/config", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/kibab/.netbeans/6.9/config/svn/config/config", {st_mode=S_IFREG|0644, st_size=825, ...}) = 0
stat("/home/kibab/.netbeans/6.9/config/svn/config", {st_mode=S_IFDIR|0755, st_size=61, ...}) = 0
open("/home/kibab/.netbeans/6.9/config/svn/config/config", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 28

يبدو أن الفحص الإضافي يعني أنه بمجرد قراءته من خلال ملفات التكوين ، فإنه يكتب نسخة (باستخدام O_TRUNC) من ملف التكوين الذي يخزن في ~/.netbeans/6.9/config/svn/config/config (على الأقل على Linux).

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

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