ما يدخل الخاص بك .جيتينور إذا كنت تستخدم جوز الهند?

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

  •  12-11-2019
  •  | 
  •  

سؤال

لقد تم القيام دائرة الرقابة الداخلية التنمية لبضعة أشهر الآن وعلمت للتو من واعدة كوكابودس مكتبة لإدارة التبعية.

حاولت بها على مشروع شخصي:تمت إضافة تبعية إلى كيوي إلى بلدي بودفيل ، ركض pod install CocoaPodsTest.xcodeproj, ، و فويلا, لقد عملت بشكل رائع.

الشيء الوحيد الذي تركته أتساءل هو:ماذا يمكنني التحقق في, وماذا تجاهل للتحكم في الإصدار?يبدو واضحا أنني أريد أن تحقق في بودفيل نفسها ، وربما .ملف زكوركسباس كذلك;ولكن هل أتجاهل القرون / الدليل?هل هناك ملفات أخرى سيتم إنشاؤها على الطريق (عندما أضيف تبعيات أخرى) التي يجب أن أضيف أيضا إلى بلدي .جيتينور?

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

المحلول

شخصيا أنا لا تحقق في محتويات القرون والمحتويات.لا أستطيع أن أقول أنني أمضيت الأعمار الطويلة في النظر في الآثار ولكن منطقي شيء مثل:

يشير podfile إلى علامة محددة أو ارتكاب كل اعتماد لذلك يمكن إنشاء القرون نفسها من Podfile، Ergo أنها مثل منتج بناء متوسط من مصدر، وبالتالي، لا تحتاج إلى عنصر تحكم الإصدارمشروعي.

نصائح أخرى

ارتكام دليل القرون. أنا لا أوافق على أن دليل القرون هو مصغر بناء. في الواقع أقول أنه بالتأكيد ليس كذلك. انها جزء من مصدر التطبيق الخاص بك: لن يبني بدونها!

من الأسهل التفكير في Cocoapods كأداة مطور بدلا من أداة الإنشاء. لا يبني مشروعك، فإنه ببساطة استنساخ ويقوم بتثبيت تبعياتك لك. لا ينبغي أن يكون من الضروري تثبيت Cocoapods لتكون قادرا على بناء مشروعك ببساطة.

عن طريق جعل cocoapods تبعية بناءكم، تحتاج الآن إلى التأكد من أن الأمر متاح في كل مكان قد تحتاج إلى بناء مشروعك ... يحتاج مسؤول الفريق إلى ذلك، يحتاج خادم CI الخاص بك. يجب عليك، كقاعدة عامة، دائما ما تكون قادرة على استنساخ مستودع المصدر والبناء دون أي جهد إضافي.

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

لذلك، ماذا أتجاهل؟ لا شيئ. Podfile، ملف القفل والدليل القرون كل شيء ملتزم. ثق بي، وسوف يوفر لك الكثير من المتاعب. ما هي سلبيات؟ ريبو أكبر قليلا؟ ليست نهاية العالم.

أوصي لاستخدام جيثب هو الهدف-C gitignore.في التفاصيل ، أفضل الممارسات:

  • على Podfile يجب أن دائما تكون تحت التحكم بالمصادر.
  • على Podfile.lock يجب أن دائما تكون تحت التحكم بالمصادر.
  • مساحة العمل التي تم إنشاؤها بواسطة CocoaPods يجب أن أن تبقى تحت التحكم بالمصادر.
  • أي جراب المشار إليها مع :path الخيار يجب أن أن تبقى تحت التحكم بالمصادر.
  • على ./Pods المجلد يمكن أن تبقى تحت التحكم بالمصادر.

لمزيد من المعلومات يمكنك الرجوع إلى الدليل الرسمي.

المصدر:أنا عضو من CocoaPods الفريق الأساسية ، مثل @سبائك


على الرغم من القرون المجلد بناء قطعة أثرية هناك الأسباب التي قد تفكر في حين البت الطقس لإبقائه تحت السيطرة المصدر:

  • CocoaPods ليس مدير مجموعة حتى المصدر الأصلي من المكتبة يمكن إزالتها في المستقبل من قبل المؤلف.
  • إذا القرون مجلد يتم تضمينها في مصدر عنصر التحكم ، فإنه ليس من الضروري تثبيت CocoaPods لتشغيل المشروع مثل الخروج سيكون كافيا.
  • CocoaPods لا يزال التقدم في العمل و هناك خيارات التي لا تؤدي دائما إلى نفس النتيجة (على سبيل المثال ، :head و :git الخيارات حاليا لا تستخدم يرتكب المخزنة في Podfile.lock).
  • هناك أقل من نقاط الفشل إذا كنت قد تستأنف العمل على المشروع بعد متوسطة/طويلة من الزمن.

.ملف جيتينور

لا جواب في الواقع يقدم .gitignore, ، لذلك هنا نوعان من النكهات.


التحقق في دليل البودات (الفوائد)

كسكودي / دائرة الرقابة الداخلية ودية جيت تجاهل ، تخطي ملفات نظام التشغيل ماك أوس ، كسكودي ، يبني ، مستودعات أخرى والنسخ الاحتياطي.

.جيتينور:

# Mac OS X Finder
.DS_Store

# Private Keys
*.pem

# Xcode legacy
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser

# Xcode
xcuserdata/
project.xcworkspace/
DerivedData/

# build products
build/
*.[oa]

# repositories
.hg
.svn
CVS

# automatic backup files
*~.nib
*.swp
*~
*(Autosaved).rtfd/
Backup[ ]of[ ]*.pages/
Backup[ ]of[ ]*.key/
Backup[ ]of[ ]*.numbers/

تجاهل دليل القرون (الفوائد)

.جيتينور: (إلحاق بالقائمة السابقة)

# Cocoapods
Pods/

ما إذا كنت تحقق في دليل القرون ، بودفيل و بودفيل.يجب أن يظل القفل دائما تحت التحكم في الإصدار.

إذا Pods لم يتم تسجيل الوصول, الخاص بك Podfile ربما يجب أن تطلب أرقام إصدار صريحة لكل كوكوابود.Cocoapods.org المناقشة هنا.

أعمل عموما على تطبيق عملاء.في هذه الحالة، أضيف دليل القرون إلى Repo أيضا، لضمان ذلك في أي وقت معين يمكن لأي مطور القيام بالخروج والبناء والتشغيل.

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

في الواقع، يجب أن أختتم أنني قد لا أكون أفضل شخص للإجابة على سؤالك، مقابل طرق عرض المستخدمين النقيين :) سآخذ سقسقة حول هذا السؤال من https://twitter.com/cocoapodsorg .

الجواب عن هذا هو تعطى مباشرة في Cocoapod مستندات.كنت قد ننظر في "http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control"

ما إذا كنت تحقق في القرون مجلد متروك لكم ، سير العمل تختلف من مشروع إلى آخر.ونحن نوصي أن يمكنك الحفاظ على القرون الدليل تحت التحكم بالمصادر و لا إضافته إلى .gitignore.ولكن في النهاية هذا القرار يعود لك:

فوائد التدقيق في القرون الدليل

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

فوائد تجاهل القرون الدليل

  • المصدر التحكم الريبو سوف يكون أصغر حجما و تأخذ مساحة أقل.

  • طالما أن مصادر (مثلا ، جيثب) لجميع القرون المتاحة ، CocoaPods عموما قادرة على إعادة نفس التركيب.(من الناحية الفنية ليس هناك ما يضمن أن يعمل جراب تثبيت سوف تجلب وإعادة متطابقة التحف عندما لا تستخدم لارتكاب شا في Podfile.هذا ينطبق بشكل خاص عند استخدام ملفات zip في Podfile.)

  • لن يكون هناك أي تضارب في التعامل مع عند أداء مصدر التحكم في العمليات ، مثل دمج فروع مختلفة جراب الإصدارات.

ما إذا كنت تحقق في القرون الدليل ، Podfile ، Podfile.قفل وينبغي دائما أن تبقى في إطار التحكم في الإصدار.

أنا تحقق في كل شيء.(Pods/ و Podfile.lock.)

أريد أن أكون قادرًا على استنساخ المستودع ومعرفة أن كل شيء سيعمل كما كان في المرة الأخيرة التي استخدمت فيها التطبيق.

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

أنا في معسكر المطورين الذين لا تحقق في المكتبات ، على افتراض أن لدينا نسخة جيدة متوفرة في موقع آخر.لذلك ، في بلدي .جيتينور أنا تشمل الأسطر التالية محددة ل كوكابودس:

Pods/
#Podfile.lock  # changed my mind on Podfile.lock

ثم أتأكد من أن لدينا نسخة من المكتبات في مكان آمن.بدلا من (سوء)استخدام مستودع رمز المشروع لتخزين التبعيات (مجمعة أم لا) أعتقد أن أفضل طريقة للقيام بذلك هي أرشفة البنيات.إذا كنت تستخدم خادم سي ليبني الخاص بك (مثل جنكينز) يمكنك أرشفة أي يبني التي هي مهمة بالنسبة لك بشكل دائم.إذا كنت تفعل كل ما تبذلونه من الإنتاج يبني في كسكودي المحلي الخاص بك ، وجعل عادة من أخذ أرشيف المشروع الخاص بك لأي يبني تحتاج إلى الاحتفاظ بها.شيء من هذا القبيل:1.المنتج - > الأرشيف

  1. توزيع...يقدم إلى المتجر دائرة الرقابة الداخلية / حفظ للمؤسسات أو نشر مخصصة / ماذا لديك

  2. كشف مجلد المشروع الخاص بك في الباحث

  3. انقر بزر الماوس الأيمن وضغط "أيا كانالمشروع"

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

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

أنا أفضل الالتزام Pods دليل جنبا إلى جنب مع Podfile و Podfile.lock للتأكد من أن أي شخص في فريقي يمكنه التحقق من المصدر في أي وقت ولا داعي للقلق بشأن أي شيء أو القيام بأشياء إضافية لجعله يعمل.

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

وتجاهل الدلائل غير الضرورية:

xcuserdata/

يجب أن أقول، أنا من محبي ارتكاب القرون إلى المستودع. بعد رابط مذكور بالفعل، سوف يمنحك ملف جيد .gitignore للحصول على مشاريع Xcode الخاصة بك ل IOS للسماح للقرونات ولكن أيضا بالنسبة لك لاستبعادها بسهولة إذا كنت ترغب في ذلك: https://github.com/github/gitignore/blob/master/objective-c.gitignore

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

  • ربما يقرر المضيف أنها لم تعد ترغب في الحفاظ على جيثب فتح الحساب ما يحدث إذا كانت المكتبة تقول عدة سنوات (مثل الأقدم من 5 سنوات على سبيل المثال) هناك مخاطر عالية قد لا يكون المشروع متاحا في المصدر
  • أيضا نقطة أخرى، ماذا يحدث إذا كان عنوان URL للمستودع التغييرات؟ دعونا نقول الشخص الذي يخدم جراب من جيثب حساب، يقرر تمثيل أنفسهم بموجب مقبض مختلف - ستحطم عناوين URL في القرون الخاص بك.
  • أخيرا نقطة أخرى. قل إذا كنت مطور مثلي من يفعل الكثير من الترميز عند رحلة بين البلدان. أنا أقوم بسحب سريع فرع "ماجستير"، قم بتثبيت جراب في هذا الفرع، أثناء الجلوس في المطار وأصبحت نفسي جميعا على مدار 8 ساعات طيران. أحصل على 3 ساعات في رحلتي، وأدرك أنني بحاجة إلى التبديل إلى فرع آخر .... "DOH" - معلومات جراب مفقودة وهي متوفرة فقط على فرع "ماجستير".

    nb ... يرجى ملاحظة أن فرع "ماجستير" للتنمية هو فقط للحصول على أمثلة، من الواضح أن فروع "ماجستير" في أنظمة التحكم في الإصدار، يجب أن تبقى نظيفة وقابلة للنشر / القابل للبناء في أي وقت

    أفكر من هذه، فإن اللقطات في مستودعات التعليمات البرمجية الخاصة بك هي بالتأكيد أفضل من أن تكون صارمة في مستودع المستودع. وكما ذكر بالفعل، فإن ملف Podfile.lock - أثناء التحكم في الإصدار سيعطيك تاريخا جيدا من إصدارات POD الخاصة بك.

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

في النهاية متروك لك النهج الذي تتخذه.

هذا هو ما يفكر فريق Cocoapods في ذلك:

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

شخصيا أود أن أبقي القرون خارج، ك node_modules إذا كنت أستخدم عقدة أو bower_components إذا كنت أستخدم Bower . هذا التقدم بطلب للحصول على أي مدير التبعية تقريبا هناك، وهي الفلسفة وراء تنفيد git aswell.

ومع ذلك، فهناك أحيانا أنك قد ترغب في أن تكون متأكدا حقا من التبعية بتبعية معينة، بهذه الطريقة التي تتحملها امتلاك الاعتماد داخل مشروعك. بالطبع هناك العديد من العيوب التي تنطبق إذا قمت بذلك، لكن المخاوف لا تنطبق فقط على Cocoapods، فإن تلك تنطبق على أي مدير التبعية هناك.

أدناه هناك قائمة جيدة المحاميين قدمها فريق Cocoapods، والنص الكامل للقلق المذكور سابقا.

الصفحة

href="https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control" rel="noreferrrer"> فريق Cocoapods: هل يجب علي التحقق من دليل القرون في عنصر تحكم مصدر؟

يعتمد الأمر شخصيًا على:

لماذا يجب أن تكون القرون جزءًا من الريبو (تحت التحكم بالمصادر) ولا ينبغي تجاهلها

  • المصدر متطابق
  • يمكنك بنائه على الفور كما هو (حتى بدون الكاكاو)
  • حتى لو تم حذف الكبسولة، لا يزال لدينا نسختها (نعم، هذا يمكن أن يحدث، وقد حدث.في مشروع قديم حيث تريد تغييرًا بسيطًا فقط، ستحتاج إلى تنفيذ مكتبة جديدة حتى تتمكن من البناء).
  • pods.xcodeproj تعد الإعدادات جزءًا من التحكم بالمصدر أيضًا.وهذا يعني على سبيل المثال.إذا كان لديك المشروع في swift 4, ، ولكن يجب أن تكون هناك بعض القرون swift 3.2 لأنه لم يتم تحديثها بعد، سيتم حفظ هذه الإعدادات.وإلا فإن الشخص الذي قام باستنساخ الريبو سينتهي به الأمر إلى حدوث أخطاء.
  • يمكنك دائمًا حذف القرون من المشروع وتشغيله pod install, ، لا يمكن أن يتم العكس.
  • حتى ال المؤلفون من Cocoapods أوصي به.

بعض السلبيات:مستودع أكبر، واختلافات مربكة (أساسًا لأعضاء الفريق)، وربما المزيد من الصراعات.

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

قد يتم تخفيف هذا مع Archivals المصدر الكامل الدوري.

تحقق في القرون.

أعتقد أن هذا يجب أن يكون مبدأ تطوير البرمجيات

  • يجب أن تكون جميع البنيات قابلة للتكرار
  • الطريقة الوحيدة لضمان البناء استنساخ هو أن تكون في السيطرة على جميع التبعيات؛ تحقق في الكل التبعيات هو لذلك يجب أن يكون.
  • يجب أن يكون مطورا جديدا بدءا من الصفر قادرا على التحقق من مشروعك وابدأ العمل.

    لماذا؟

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

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

    الكلمة الأخيرة: القرون لا تبني القطع الأثرية. بناء القطع الأثرية هي ما يتم إنشاؤه من البنيات الخاصة بك. يستخدم Build الخاص بك القرون، وليس إنشاءها. أنا لست متأكدا من السبب وراء مناقشة هذا.

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

إيجابيات لا تسجيل الدخول Pods/ للتحكم في الإصدار (حسب الترتيب الشخصي للأهمية):

  1. كثيراً من الأسهل دمج الالتزامات ومراجعة اختلافات التعليمات البرمجية.يعد الدمج مصدرًا شائعًا للمشكلات في قاعدة التعليمات البرمجية، وهذا يسمح لك بالتركيز فقط على الأشياء ذات الصلة.
  2. من المستحيل على بعض المساهمين العشوائيين تعديل التبعيات بأنفسهم والتحقق من التغييرات، وهو ما لا ينبغي لهم القيام به أبدًا (ومرة أخرى سيكون من الصعب تحديد ما إذا كان الفرق هائلاً).يعد تحرير التبعيات ممارسة سيئة للغاية لأنه مستقبل pod install يمكن أن يحجب التغييرات.
  3. التناقضات بين Podfile و ال Pods/ تم العثور على الدليل بشكل أسرع بين زملائه في الفريق.إذا قمت بتسجيل الوصول Pods/ وعلى سبيل المثال، تحديث إصدار في Podfile, ، ولكن ننسى لتشغيل pod install أو التحقق من التغييرات على Pods/, ، سيكون من الصعب عليك ملاحظة مصدر التناقض.لو Pods/ لم يتم تسجيل الدخول، تحتاج دائمًا إلى التشغيل pod install على أي حال.
  4. حجم الريبو الأصغر.يعد وجود بصمة بايت أصغر أمرًا رائعًا، لكن هذا لا يهم كثيرًا في المخطط الكبير.أكثر أهمية:وجود المزيد من الأشياء في الريبو يزيد أيضًا من حملك المعرفي.لا يوجد سبب لوجود أشياء في الريبو لا ينبغي عليك النظر إليها.ارجع إلى الوثائق (التجريد) لمعرفة كيفية عمل شيء ما، وليس على الكود (التنفيذ).
  5. من الأسهل معرفة مقدار مساهمة شخص ما (نظرًا لأن أسطر التعليمات البرمجية التي ساهم بها لن تتضمن تبعيات لم يكتبها)
  6. JAR ملفات, .venv/ (البيئات الافتراضية)، و node_modules/ لا يتم تضمينها أبدًا في التحكم في الإصدار.إذا كنا لا أدريين تماما حول هذا السؤال، لا تسجيل الدخول Pods سيكون الافتراضي على أساس سابقة.

سلبيات لا التحقق في Pods/

  1. انت مجبر ان تركض pod install عند تبديل الفروع، أو التراجع عن الالتزامات.
  2. لا يمكنك تشغيل مشروع بمجرد استنساخ المستودع.يجب عليك تثبيت أداة البود ثم تشغيلها pod install.
  3. يجب أن يكون لديك اتصال بالإنترنت للتشغيل pod install, ، ويجب أن يكون مصدر القرون متاحا.
  4. إذا قام مالك التبعية بإزالة الحزمة الخاصة به، فأنت في مشكلة.

في ملخص، لا يشمل ال Pods الدليل هو حاجز حماية ضد المزيد من الممارسات السيئة. مشتمل ال Pods الدليل يجعل تشغيل المشروع أسهل.أنا أفضل الأول على الأخير.لن تحتاج إلى استجواب كل شخص جديد في المشروع حول "ماذا". لا للقيام به" إذا لم تكن هناك إمكانية لارتكاب أخطاء معينة في المقام الأول.تعجبني أيضًا فكرة وجود تحكم منفصل في الإصدار لـ Pods مما يخفف من السلبيات.

يبدو وكأنه وسيلة جيدة لتحويل هذا حقا سيكون له دليل "القرون" كمشروع منفصل / منفصل، إليك السبب.

  • بعد الحصول على قرون في مشروعك repo، عند العمل مع العديد من المطورين، يمكن أن يسبب فرق كبير جدا في طلبات السحب حيث يكون من المستحيل تقريبا رؤية العمل الفعلي الذي تم تغييره من قبل الناس (يعتقدون عدة مئات إلى الآلاف من الملفات التي تم تغييرهاللمكتبات، وعدد قليل فقط تغير في المشروع الفعلي).

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

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

فوائد التحقق في دليل القرون

  1. بعد استنساخ الريبو، يمكن للمشروع أن يبني على الفور وتشغيله، حتى دون تثبيت Cocoapods على الجهاز. ليست هناك حاجة لتشغيل تثبيت جراب، ولا يوجد اتصال بالإنترنت ضروري.
  2. القطع الأثرية جراب (الكود / المكتبات) متاح دائما، حتى لو كان مصدر جراب (E.G. GitHub) قد تنخفض.
  3. القطع الأثرية للجراح مضمونة لتكون متطابقة لأولئك في التثبيت الأصلي بعد استنساخ الريبو.

    فوائد تجاهل دليل القرون

    1. ستكون Repo التحكم المصدر أصغر وأخذ مساحة أقل. طالما أن المصادر (مثل Github) لجميع القرون متوفرة، فإن Cocoapods قادرة بشكل عام إعادة إنشاء نفس التثبيت. (من الناحية الفنية ليس هناك ضمان أن تشغيل تثبيت جراب سوف يجلب ويعيش القطع الأثرية متطابقة عند عدم استخدام ارتكاب شا في podfile . هذا صحيح بشكل خاص عند استخدام ملفات ZIP في Podfile.)
    2. لن يكون هناك أي صراعات للتعامل معها عند إجراء عمليات التحكم المصدر، مثل دمج الفروع مع إصدارات جراب مختلفة. سواء كنت تحقق في دليل القرون، يجب دائما الحفاظ على Podfile و Podfile.lock تحت تحكم الإصدار.

ليرة تركية؛دكتور:عند تتبع Pods/ المجلد ، يسهل التقاط المشروع.عندما لا تتبعها ، يكون من الأسهل تحسينها عند العمل في فريق.

على الرغم من أن منظمة Cocoapods تشجعنا على تتبع Pods/ الدليل، يقولون إن الأمر متروك للمطورين ليقرروا ما إذا كانوا سيفعلون ذلك أم لا بناءً على هذه الإيجابيات والسلبيات:http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control

شخصيا، أنا عادة تتبع Pods/ المجلد مخصص فقط للمشاريع التي لن أعمل عليها بعد الآن لفترة من الوقت.وبهذه الطريقة يمكن لأي مطور أن يلتقط منه بسرعة ويواصل العمل باستخدام الإصدار المناسب من Cocoapods.

من ناحية أخرى، أعتقد أن سجل الالتزام يصبح أكثر نظافة ويصبح من الأسهل دمج الكود ومراجعة كود شخص آخر عندما لا تقوم بتتبع الكود. Pods/ مجلد.عادةً ما أقوم بتعيين إصدار مكتبة Cocoapod عندما أقوم بتثبيته للتأكد من أنه يمكن لأي شخص تثبيت المشروع باستخدام نفس الإصدارات التي أستخدمها.

وأيضاً عندما Pods/ يتم تتبع الدليل حيث يجب على جميع المطورين استخدام نفس الإصدار من Cocoapods لمنعه من تغيير عشرات الملفات في كل مرة نقوم بتشغيلها pod install لإضافة/إزالة جراب.

الحد الأدنى:عند تتبع Pods/ المجلد، المشروع أسهل في الالتقاط منه.عندما لا تتبعه، يكون من الأسهل تحسينه.

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