سؤال

ما هو أفضل نظام للتحكم في الإصدار يمكنك تعلمه كمبتدئ في التحكم بالمصادر؟

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

المحلول

أي شيء غير مصدر مرئي آمن؛ويفضل أن يكون ذلك يدعم مفاهيم التفرع والدمج.كما قال الآخرون، يعد Subversion خيارًا رائعًا، خاصة مع عميل TortoiseSVN.

تأكد من التحقق (العفو عن التورية) سلسلة إريك سينك الكلاسيكية من مقالات كيفية التحكم بالمصادر.

نصائح أخرى

أقترح عليك تجربة Subversion، على سبيل المثال مع 1-انقر فوق مثبت SVN.حاول البحث عن SO عن "Subversion"، وستجد الكثير من الأسئلة مع إجابات تشير إلى برامج تعليمية جيدة.

حظ سعيد!

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

موارد مفيدة:

هناك بعض المفاهيم الأساسية التي أعتقد أنه من المهم تعلمها:

  1. تسجيلات الوصول/المغادرة (من الواضح)
  2. الإصدارات المحلية مقابل.إصدارات الخادم
  3. تعيين/ربط مساحة عمل محلية بمخزن أو مستودع بعيد.
  4. دمج التغييرات الخاصة بك مرة أخرى في ملف يحتوي على تغييرات من الآخرين.
  5. التفرع (ما هو ومتى ولماذا يتم استخدامه)
  6. دمج التغييرات من فرع مرة أخرى إلى فرع رئيسي أو جذع.

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

التخريب رائع لأنه يحتوي على جميع الميزات الحديثة التي تريدها وهو مجاني.

شخص سخيف أصبح أيضًا خيارًا شائعًا بشكل متزايد وهو بديل آخر مجاني أو منخفض التكلفة للغاية لـ Subversion.ومع ذلك، تصبح المعرفة المتعلقة بمفاهيم التفرع والدمج أمرًا بالغ الأهمية لاستخدام Git.

يمكنك استخدام فك باعتبارها طريقة مجانية وسهلة لتجربة كل من Git وSubversion.أستخدمه لاستضافة اثنين من مستودعات التخريب لبعض المشاريع الجانبية التي عملت عليها في الماضي.

أنا لست مستخدمًا متقدمًا للتحكم في المصدر، لكنني أتعلم.هذه هي تجربتي مع منتجات التحكم بالمصدر:

  1. منذ وقت طويل، قررت الشركة التي كنت أعمل بها في ذلك الوقت استخدام التحكم بالمصادر.لقد قدموا هذا المفهوم للمطورين وجعلوا الجميع على استعداد لتجربته.اختاروا استخدام PVCS، وقاموا بتنفيذه.وقبل مرور وقت طويل، سيتعين على المطورين التنسيق لقفل/فتح الوحدات والكائنات، ولم نرى حقًا الكثير من الفوائد.

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

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

  4. بعد فترة وجيزة أدركت أنني أحب التحكم بالمصادر وأن وظيفتي الحالية لا تحتوي عليه.لذلك قمت بالتبشير، وبعد فترة طويلة من الزمن، قام فريقي بتطبيق Source Safe لأننا نعمل في Visual Studio ونحن بشكل عام متجر Microsoft.كنت متحمسًا لاستخدامه، ولكن لم يمض وقت طويل حتى اكتشفت أنني أفقد ملفات وأن Visual Studio كان يضع الأشياء في المكان الخطأ وأنني سأعمل على مشروع لفترة من الوقت ثم أذهب لتصدير عملي إلى موقع آخر وتجد أنها إما لن تقوم بالتصدير أو ستصدر فقط بعض المشاريع في الحل.هذا جعلني أدرك أنه على الرغم من أنني اعتقدت أنني كنت أستخدم "نظام التحكم في الإصدار"، فإن نسخة الكود الأكثر أمانًا وقوة واكتمالًا هي نسخة العمل الخاصة بي.العكس تمامًا لما يفترض أن يفعله التحكم بالمصادر.

  5. لقد سئمت الأسبوع الماضي من Source Safe لدرجة أنني ذهبت للبحث عنه.بعد النظر في بعض الحلول، قررت تجربة git.لن أقول إن كل ذلك كان مجرد ورود، حيث كان لدي بعض منحنى التعلم مرة أخرى لحمله على القيام بما أريده أن يفعله، ومع ذلك، لقد أحببته بما يكفي لتحويل جميع أعمالي ومشاريعي الشخصية إليه.أحد الأشياء الرائعة حقًا في هذا الأمر هو أنني لا أحتاج إلى مستودع مركزي حتى أتمكن من استخدامه دون المرور بالكثير من الروتين في العمل لتثبيته.

لذا باختصار، أود أن أوصي بـ git، فأنا أستخدم Mysysgit في Windows وله ميزة إضافية تتمثل في إعطائي bash Shell.على Linux، يمكنك فقط تثبيته من مدير الحزم لديك.إذا كنت لا تحب git، فجرب Subversion.إذا كنت لا تحب أيًا منهما، فربما لن تحب CVS أو PVCS أيضًا.لا تحاول تحت أي ظرف من الظروف استخدام Source Safe، فهو أمر فظيع.

وجدت http://unfuddle.com أنقذني من العبث بتثبيت SVN أو git.يمكنك الحصول على حساب مجاني هناك واستخدام أي منهما - بالإضافة إلى أنه يمكنك استخدام OpenID الخاص بك هناك.

ثم تتجنب الاضطرار إلى العبث بإعداده بشكل صحيح والتركيز على كيفية استخدامه!

Vault من SourceGear.com رائع.إنه مجاني للمستخدمين الفرديين ويوفر واجهة VS 2005/2008 رائعة.أنا أحبه!

روبية

@ إيان نيلسون:

أتفق معك في أن Source Safe سيء كنظام للتحكم في المصدر، لكن ضع في اعتبارك أن استخدام Source Safe أفضل كثيرًا من "حمل الأقراص المرنة" كما قال جويل سبولسكي.

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

كل أداة لها نقاط القوة والضعف الخاصة بها.إنها مسألة إلى حد كبير ما هي متطلباتك.لسوء الحظ، في هذه المشكلة، مثل العديد من المشكلات الأخرى، غالبًا ما لا يتم اختيار الأداة الأفضل، بل هي الأداة التي يعرفها شخص ما.على سبيل المثال، إذا كنت لا تحتاج إلى العديد من الفروع وكان فريقك صغيرًا ومحليًا، فستقوم أي VCs تقريبًا بهذه المهمة (باستثناء SourceSafe).تتغير الأمور إذا كنت بحاجة إلى فروع (وهو ما يعني بالضرورة أنك تحتاج أيضًا إلى إجراء عمليات الدمج)، ويتم توزيع فريقك، وتحتاج إلى أمان متقدم (لا يُسمح للمقاولين من الباطن بشجرة المصدر بأكملها)، وتتبع المهام، وما إلى ذلك.هناك أيضًا مسألة التكلفة بثلاث طرق مختلفة:تكلفة التراخيص وتكلفة الصيانة (بعض الأدوات معقدة للغاية بحيث تحتاج عمليًا إلى شخص ما فقط للتحكم في المستودعات) وتكلفة التدريب.

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

فقط بعض المؤشرات:

  • Starteam هي أسهل الأدوات التي استخدمتها.يتطلب القليل جدا من التدريب.حصلت على تدريب ليوم واحد منذ أن أكون المشرف.استغرقت هذه الحفاظ علي أقل من 30 دقيقة في الأسبوع.المستخدمون "تدربت" من خلال كتابة دليل من صفحتين وبعد ذلك كان لدي القليل من الأسئلة للإجابة عليها.
  • كان Continuus هو الطرف الآخر من المقياس فيما يتعلق بسهولة الاستخدام.من ناحية أخرى، كان التعامل مع المهام رائعًا وقدم دعمًا جيدًا لإدارة الإصدار.المشكلة هي أنه حتى بصفتي مديرًا للإصدار، لم أفكر مطلقًا في أن سهولة إصدار الإصدارات (لقد تعلمت الطريقة بمجرد أن تتعلم ذلك، لكن ذلك استغرق وقتًا طويلاً) يجب أن تكون أكثر أهمية من العمل اليومي الذي يقوم به المطورون.
  • يختلف الدمج والفرع يختلف بشكل كبير بين الأدوات.تجعل بعض الأدوات هذا بسيطًا ، مثل Git و Clearcase (على الرغم من أن الأخير بطيء جدًا) يجبرك البعض بشكل أساسي على القيام بالاندماج يدويًا.إذا كنت بحاجة إلى دمج الكثير ، فقد ترتفع التكلفة.كانت Clearcase باهظة الثمن أيضًا في جميع الفئات الثلاث المذكورة من قبل (على الرغم من أنه يجب القول أننا استخدمنا جميع الأشياء المتقدمة التي ليست ضرورية).من ناحية أخرى ، تفتقر Git إلى واجهة مستخدم جيدة وبعض المفاهيم تختلف عن ما قد تستخدمه.تفتقر ميزات الأمان الخاصة بـ GIT أيضًا (يعالج الوثني بعض القضايا ولكن ليس كل شيء).
  • معظم الأدوات التي استخدمتها بطيئة للغاية.كانت أدوات مثل PVCs/الأبعاد بطيئة تمامًا ، بغض النظر عن ما (الأشياء الأساسية مثل فتح دليل في المستودع) ، بعضها بطيء جدًا بطرق أكثر تحديداً (مثل Clearcase).

من الأدوات التي استخدمتها، سأختار StarTeam إذا لم يكن المطورون لديك يتمتعون بخبرة كبيرة (وإذا كنت لا تمانع في دفع الترخيص، وهو مكلف للغاية) وgit إذا كان لديك بعض الأشخاص ذوي الخبرة في vcs الذين يمكنهم إعداد البيئة إلى رجال آخرين.يبدو Mercurial أيضًا وكأنه منافس مثير للاهتمام ويبدو أنه يتمتع بواجهة مستخدم أفضل قليلاً.

تعتبر أنظمة Continuus وPVCS/Dimensions وClearCase بطيئة للغاية ومعقدة للغاية ومكلفة للغاية بالنسبة لأي مشروع تقريبًا.إذا أصر شخص ما على اختيار واحد من هؤلاء، فسأختار ClearCase.

لم أستخدم Subversion الذي يبدو أن الكثيرين يحبونه (ومع ذلك، لدي شعور بأن هذا على وشك التغيير في المستقبل القريب) لذا لا يمكنني التعليق على كيفية مقارنته بالأدوات الأخرى التي استخدمتها (عادةً كإنشاء و/ أو مدير الإصدار).

أما بالنسبة للأداة الأولى التي يجب اختيارها، فالمشكلة مع Git وBazaar وMercurial هي أنهم يوزعون ملفات vcs.وهذا يختلف عن نموذج الخادم والعميل التقليدي حيث يكون لديك مستودع مركزي.لمجرد تعلم الأشياء، أوصي أيضًا بقراءة المفاهيم.التفرع على سبيل المثال هو شيء قد لا تفهمه بشكل صحيح بمجرد تجربتك بنفسك (هناك استراتيجيات فرعية مختلفة لمواقف مختلفة).بالإضافة إلى أن الأمر مختلف تمامًا إذا كنت الشخص الوحيد الذي يصل إلى المستودع، فلن تكون تعارضات الدمج على سبيل المثال مشكلة (قد تتمكن من رؤيتها ولكن يمكنك أيضًا إصلاحها بسهولة نظرًا لأنك تعرف الكود في كلا الفرعين).بالطبع ستتعرف على عمليات تسجيل المغادرة وتسجيل الوصول وما إلى ذلك، لكنني لا أعتقد أن هذه المشكلات صعبة بشكل خاص في المقام الأول.

المشكلة الإضافية في vcs هي أنها تميل إلى استخدام مصطلحات مختلفة.في StarTeam الذي يسهل استخدامه، يصرون لسبب ما على استخدام المصطلحين "السحب" و"السحب والقفل".والأخير هو ما يعتقد معظم الناس أن الأول يفعله.هناك سبب لذلك (يمكنك تحرير الملفات حتى لو لم يكن لديك قفل حصري)، ولكن لا يزال من المنطقي أكثر أن نطلق على هاتين الكلمتين "Get" و"Check out" لتجنب الالتباس.

أي شيء، لكني سأتعلم نظامًا حديثًا مثل git أو Subversion بنفسي.كان أول VCS لي هو RCS، لكنني تعلمت الأساسيات.

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

كان أول تعرض لي هو CVS مع WinCVS كعميل.كان فظيعا.التالي كان Subversion، مع تكامل TortoiseSVN وEclipse.لقد كانت بديهية وسماوية.أعتقد أن استخدام CVS مع TortoiseCVS وEclipse's سيكون أمرًا رائعًا أيضًا، على الرغم من أنني أفضل الطريقة التي يتعامل بها SVN مع المراجعة.يتم إصدار المستودع بأكمله مع كل تسجيل وصول، وليس ملفات فردية.

وأود أن أوصي أيضًا بالتخريب.لا يستغرق إعداده وقتًا طويلاً، فهو مجاني، ويوجد كتاب جيد جدًا متاح عبر الإنترنت يتناول الأساسيات بالإضافة إلى بعض المواضيع المتقدمة: http://svnbook.red-bean.com/

التخريب مع السلاحفvn.(tortoisesvn لأنه يمكنك رؤية الكثير مما يحدث بصريًا وسيوفر نقطة انطلاق جيدة لأشياء سطر الأوامر.) هناك الكثير من الوثائق ومن المرجح أن تراها على الأقل في نقطة واحدة في حياتك المهنية.تقريبًا كل شركة عملت بها وأجريت مقابلات معها تدير SVN.

إذا كنت تتطلع إلى تعلم منتج تجاري أثناء البدء، توفر Perforce عميلًا وخادمًا مجانيين، حيث يدعم الخادم مستخدمين وخمس مساحات عمل للعملاء.

في مكان عملي السابق، تم استخدامه دينيًا ليس فقط للتعليمات البرمجية من قبل المبرمجين لدينا، ولكن أيضًا للأصول الفنية ومستويات الألعاب والتوثيق الخاص بي.

التخريب هو مكان جيد للبدء به.إنه نظام تحكم في الإصدار مستقر وحديث للغاية.أفضل مورد عبر الإنترنت لبدء التعلم حول Subversion هو التحكم في الإصدار مع التخريب.هناك الكثير من الخيارات فيما يتعلق ببرامج الخادم والعميل.أنا شخصياً أفضّل (لبيئة Windows).

  1. خادم VisualSVN

  2. عميل TortoiseSVN المتكامل و

  3. الوظيفة الإضافية AnkhSVN Visual Studio Subversion

مرة أخرى، مع Subversion هناك الكثير من الخيارات المتاحة.كما أنه نظام تحكم في الإصدار يتطور باستمرار (على عكس SourceSafe القديم).ويمكن دمجه بسهولة مع العديد من أدوات البناء الآلية (CruiseControl وFinalBuilder) وأنظمة تتبع الأخطاء/المشكلات (JIRA).

إذا كنت تبحث عن أحدث أنظمة التحكم في الإصدار، فانتقل إلى Git (الذي طوره Linus Torvalds).ولكن إذا كنت جديدًا تمامًا على أنظمة التحكم في الإصدار، فإنني أقترح البدء بالتخريب.

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