سؤال

إذن أنت تعلم أن الكثير من تطبيقات Mac تستخدم "الحزم":يبدو وكأنه ملف واحد في تطبيقك، ولكنه في الواقع مجلد يحتوي على العديد من الملفات بداخله.

لكي يتمكن نظام التحكم في الإصدار من التعامل مع هذا الأمر، فإنه يحتاج إلى ما يلي:

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

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

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

المحلول

بالنسبة لأنظمة SCM الموزعة مثل git و Mercurial لا ينبغي أن تكون مشكلة كما ذكر ماثيو.

إذا كنت بحاجة إلى استخدام SCM مركزي مثل Subversion أو CVS، فيمكنك ضغط (أرشفة) حزمك قبل التحقق منها في التحكم بالمصدر.قد يكون هذا مؤلمًا ويتطلب خطوة إضافية.هناك تدوينة جيدة حول هذا الموضوع في Tapestry Central:

حزم Mac OS X مقابل.التخريب

توضح هذه المقالة نص روبي الذي يدير عملية الأرشفة نيابةً عنك.

نصائح أخرى

Mercurial في إصدارات معينة تعتمد على الملف وليس على بنية الدليل.ولذلك، فإن شجرة العمل الخاصة بك، والتي تعد مستودعًا كاملاً، لا تقوم بإخراج مجلدات .svn في كل مستوى.

ويعني ذلك أيضًا أن الدليل الذي تم استبداله، مثل التطبيق أو الحزمة الأخرى، سيظل يجد محتوياته بأسماء ملفات معينة تحت تحكم المراجعة.تتم مراقبة أسماء الملفات، وليس inodes أو أي شيء فاخر من هذا القبيل!

من الواضح، إذا تمت إضافة ملف جديد إلى الحزمة، فستحتاج إلى إضافته بشكل صريح إلى مستودعك.وبالمثل، فإن إزالة ملف من الحزمة يجب أن تتم باستخدام "hg rm".

لا توجد أي واجهات مستخدم رسومية Mercurial مناسبة لنظام التشغيل OS X حتى الآن، ولكن إذا كان كل ما تفعله هو الإضافة/الالتزام/الدمج، فليس من الصعب استخدام سطر الأوامر.

تحديث من المستقبل:

على ما أذكر، كانت مشكلة إدارة الحزم في SVN هي مسح جميع مجلدات .svn في كل مرة تقوم فيها بإنشاء حزمة.لا ينبغي أن يكون هذا مشكلة بعد الآن، حيث يقوم SVN الآن بتخزين كل شيء في مجلد .svn واحد في الجذر.

إعادة هذا الموضوع إلى ضوء النهار، نظرًا لأن iWork (الصفحات 5.0 وما إلى ذلك) في أكتوبر 2013 لم يعد يسمح بالتخزين في "ملف ثابت" (مضغوط)، ولكن كحزم فقط.

لا تكمن المشكلة في إنشاء مجلدات مخفية للتحكم في الإصدار داخل هذه الهياكل (حسنًا، بالنسبة لـ svn)، ولكن كما يلي: علامة يقول في السؤال:الحصول على تحديث تلقائي وذري للملفات المضافة أو المحذوفة (بواسطة التطبيق، في هذه الحالة iWork)، لذلك لن أحتاج إلى القيام بذلك يدويًا.

من الواضح أن iWork وApple لا ينزعجان إلا من سهولة استخدام iCloud.ومع ذلك، لدي حالة حقيقية لتخزين الصفحات. والأرقام. والكلمة الرئيسية في مستودع Mercurial.بعد التحديث راح يفرق كل شيما يجب القيام به؟

إضافة:

وجد 'hg addremove"هذا هو الحيلة بالنسبة لي.

$ hg help addremove
hg addremove [OPTION]... [FILE]...

add all new files, delete all missing files
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top