سؤال

إذا كنت تعمل بلغة PHP (أو أي لغة برمجة على ما أعتقد) وتستخدم Subversion كعنصر تحكم بالمصادر، فهل هناك طريقة لتولي مشروعك (على سبيل المثال):

C:\المشاريع\الاختبار\.svn
C:\المشاريع\الاختبار\المستندات\
C:\المشاريع\اختبار\faq.php
C:\المشاريع\الاختبار\guestbook.php
C:\المشاريع\اختبار\index.php
C:\المشاريع\اختبار est.php

وقم ببناء/نسخ/أي شيء حتى يتم التخلص من ملفات معينة ويصبح:

C:\المشاريع\اختبار\faq.php
C:\المشاريع\الاختبار\guestbook.php
C:\المشاريع\اختبار\index.php

تلقائيا؟لقد سئمت من إنشاء فرع، ثم المرور عبر الفرع وحذف كافة المجلدات ".svn"، ودليل المستندات، وملفات النماذج الأولية الخاصة بي.

أعلم أنه ربما يمكنني استخدام ملف .bat لنسخ الملفات المحددة التي أريدها فقط، لكنني كنت آمل أن تكون هناك طريقة ما للتخريب لنوع من التجاهل الزائف للملف، إلى حيث سيستمر في إصداره، ولكن حيث يمكنك القيام بذلك لقطة من المشروع تتجاهل الملفات التي طلبت منها تجاهلها بشكل زائف.

أعلم أنني قرأت عبر الإنترنت في مكان ما عن بعض الوظائف التي تتيح لك على الأقل النسخ بدون مجلدات .svn، لكن لا يمكنني العثور عليها الآن.

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

المحلول

إذا كنت تستخدم TortoiseSVN، فيمكنك استخدام ميزة التصدير لإزالة كافة ملفات .svn تلقائيًا.أعتقد أن أشياء svn الأخرى لها نفس الميزة.

انقر بزر الماوس الأيمن فوق مجلد المشروع الجذري، TortoiseSVN > Export وأخبره بالمكان الذي تريد الدليل المجاني .svn فيه.

نصائح أخرى

إليك فكرة غريبة عن العلكة والأحذية:

انسخ جميع الملفات يدويًا أو باستخدام طريقتك الحالية لأول مرة.بعد ذلك، بما أنني أعتبر أنك تستخدم نظام التشغيل Windows، قم بالتثبيت SyncToy وتكوينه في طريقة الاشتراك, ، والذي من شأنه أن ينسخ بشكل فعال في اتجاه واحد فقط التغييرات التي تم إجراؤها منذ الالتزام الزائف الأخير بالإنتاج للملفات الموجودة بالفعل في الإنتاج.إذا كنت تريد إضافة ملف، يمكنك فقط نسخه يدويًا واستئناف عملية SyncToy.

حسنًا ، الحل النهائي الخاص بي هو هذا:

استخدم أمر التصدير للتصدير إلى مجلد يسمى "تصدير" في نفس الدليل كملف يسمى "deploy.bat"، ثم أقوم بتشغيل البرنامج النصي للنشر (v1 يرمز إلى الإصدار 1، وهو الإصدار الذي أستخدمه حاليًا في هذا مشروع) يستخدم هذا البرنامج النصي 7-Zip، والذي قمت بوضعه على مسار النظام الخاص بي حتى أتمكن من استخدامه كأداة مساعدة لسطر الأوامر:

rem replace the v1 directory with the export directory
rd /s /q v1
move /y export\newIMS v1
rd /s /q export

rem remove the prepDocs directory from the project
rd /s /q v1\prepDocs

rem remove the scripts directory from the project
rd /s /q v1\scripts

rem remove individual files from project
del v1\.project
rem del v1\inc\testLoad.html
rem del v1\inc\testInc.js

SET /P version=Please enter version number:

rem zip the file up with 7-Zip and name it after whatever version number the user typed in.
7z a -r v%version%.zip v1

rem copy everything to the shared space ready for deployment
xcopy v%version%.zip /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\v%version%.zip"
xcopy v1 /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\currentVersion"

rem keep the window open until user presses any key
PAUSE

لم يكن لدي الوقت الكافي للتحقق من حل SyncToy، لذا لا تعتبر هذا بمثابة رفضي لهذه الطريقة.لقد عرفت للتو كيفية القيام بذلك، ولم يكن لدي الوقت للتحقق من ذلك (في ظل أزمة زمنية في الوقت الحالي).

مصادر:

http://commandwindows.com/command2.htm
http://www.ss64.com/nt/

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