سؤال

إنها مزعجة بشكل خاص عندما أحتاج إلى تحميل حل ويب إلى الخادم.

هل هناك طريقة لتكوين SVN لإنشاء مجلدات _svn خارج دليل العمل الخاص بي؟إذا لم يكن الأمر كذلك، فما هي أفضل طريقة للتعامل معها عندما تحتاج إلى نسخ الكود فقط؟

تحديث: يعد استخدام أمر "svn Export" مشكلة نظرًا لوجود ملفات ليست تحت التحكم بالمصادر ولكنها ضرورية مثل ملفات .dll أو ملفات بيانات xml أو ملفات قاعدة البيانات ولن يتم تصديرها.ولذلك سيكون مطلوبًا نسخها يدويًا في أدلة فرعية مختلفة من نسخة العمل في كل مرة.

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

المحلول

ليس من الممكن (حاليًا) تكوين SVN (أو TortoiseSVN) لإنشاء أدلة .svn (أو _svn) خارج نسخة العمل.أعتقد أن خارطة طريق SVN 1.6 تتضمن إعادة النظر في مكتبة نسخ العمل.القدرة على وضع الدلائل الإدارية في مكان آخر قد تأتي من هذا العمل، لكنني أتكهن.

يجب عليك استخدام الأمر "svn Export" لإنشاء نسخة "نظيفة" من نسخة العمل الخاصة بك (أي.بدون أدلة _svn).هذا يعمل من عميل سطر الأوامر.

إذا كنت تستخدم TortoiseSVN، فيمكنك النقر بزر الماوس الأيمن على نسخة العمل واختيار "تصدير...".سيطلب منك هذا مجلدًا لتصدير الملفات إليه.وبدلاً من ذلك، يمكنك سحب نسخة عمل إلى المجلد الأيمن (نسخة ليست نسخة عمل)، وسيقوم TortoiseSVN بإحضار قائمة السياق؛من بين الخيارات "SVN Export to here" و"SVN Export all to here"، والأخير يتم تصديره أيضًا الملفات التي لا تخضع للتحكم في الإصدار.

نصائح أخرى

استخدم "تصدير إس" لإنشاء شجرة الدليل نظيفة.

نشر كيكر ...

robocopy {source} {dest} /MIR /XD _svn /XD .svn

في TortoiseSVN، يمكنك ذلك يمين انقر على نسخة العمل واسحبها إلى مكان آخر.وعندما تظهر القائمة المنبثقة، حدد "SVN Export Here".(يتطلب هذا التحقق من كافة التعليمات البرمجية الموجودة في نسخة العمل نظرًا لأن التصدير سيكون من صندوق الأمتعة و لا من نسخة العمل)

راجع هذه الموارد للحصول على التفاصيل:

  • http://tortoisesvn.net/most-forgotten-feature (حول قائمة سياق النقر بزر الماوس الأيمن + السحب)
  • http://tortoisesvn.net/node/343 (حول إلغاء إصدار نسخة عمل svn).إذا كنت تستخدم هذه الطريقة، أنا يفكر أن ملفاتك التي لم يتم إصدارها ستبقى في المجلد لكنني لم أجربه ...

إذا كنت تستخدم برنامج نصي nant لتمكين النشر على خادم الويب، فإنه يحتوي على _SVN و _SVN/** كما يتم الاستثناء تلقائيًا عند نسخ الملفات.ستقوم nant بتصفية الكثير من الملفات غير المرغوب فيها عند نسخ الملفات عبر مهمة النسخ الخاصة بها بما في ذلك:

  • **/*~
  • **/#*#
  • **/.#*
  • **/%*%
  • **/CVS
  • /CVS/
  • **/.cvsignore
  • **/.svn
  • /.svn/
  • **/_svn
  • /_svn/
  • **/SCCS
  • /SCCS/
  • **/vssver.scc
  • /_vti_cnf/

يمكنك قراءة المزيد عن NANT في الصفحة الرئيسية لمشروعها هنا: نانت هوم

+1 للحل من إيزاك سافو.

ويمكنك إجراء XCOPY واستبعاد المجلدات "/svn":

XCOPY %1 %1_deploy /EXCLUDE:C:\ExcludeSVN.txt /E /C /I /F /R /Y

محتوى ExcludeSVN.txt :

/_svn

في الواقع، إذا كنت تريد التحميل إلى خادم ويب، فيمكن أن يحتوي ملف الاستبعاد الخاص بك على المزيد:

  • .pdb
  • .CS
  • .resx
  • .csproj
  • .sln
  • .webinfo
  • .باك
  • .sql
  • .أَزِيز
  • .vspscc
  • .vssscc
  • .scc
  • \Web.config

تحذير :إذا قمت باستبعاد ملفات .cs، فقد قمت بإعادة نسخ ملف .css بعد ذلك

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

والقرف! ولكنه يعمل <م> حقا جيدا.

ونحن نستخدم CruiseControl مع كيكر من أجل إنشاء نسخة نظيفة من المخزون الخاص بك.

 <exec>
        <executable>C:\Archivos de programa\Windows Resource Kits\Tools\robocopy.exe</executable>
        <buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs>
        <buildTimeoutSeconds>60</buildTimeoutSeconds>
        <successExitCodes>1,0</successExitCodes>
 </exec>

و/ XF و / الحجج XD تستثني الملفات والأدلة التي لا تريد تحميلها على الإنتاج.

ويمكنك العثور على مزيد من المعلومات حول كيكر هنا .

إذا كنت تريد حذف جميع المجلدات الفرعية المسماة .svn في Windows ثم قم بإنشاء ملف دفعة مع هذا المحتوى:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

احفظه في ملف del_All_Dot_SVN_Folders.cmd .شغلها.أنتهيت.

شكرا ل http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/

تذكر أن الكود أعلاه يحتوي على .SVN في حين أن الكود في الرابط يحتوي فقط على *SVN ، لذا من الأفضل أن يكون لديك .SVN ليس له تأثير غير مرغوب فيه عن طريق الخطأ.

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