هل يجب أن أنظر إلى أنظمة التحكم في الإصدار خارج نطاق Subversion؟

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

سؤال

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

وجهة نظري هي أنه يفعل كل ما أحتاج إليه ولم يخذلني أبدًا.

هل هناك أي شيء أفضل؟هل أفتقد بعض الميزات في منتج آخر يمكنني استخدامه لتسهيل حياتي؟أنا دائمًا أهتم باستخدام أفضل البرامج المتوفرة وليس لدي أي مشكلة في الانتقال إلى التقنيات الجديدة.

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

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

المحلول

إن Git وMercurial وBazaar هي أنظمة تحكم موزعة تعمل على فكرة أنك لست متصلاً دائمًا بالشبكة، وأنه لا يلزم أن يكون هناك إصدار مركزي واحد للمستودع.

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

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

يرجى أيضًا مراعاة قيمة الحفاظ على الدليل الرئيسي الخاص بك في Subversion.

نصائح أخرى

زئبقي

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

  • يمكن لـ Mercurial أن يتحول من فرقة رجل واحد إلى فرقة ضخمة مثل OpenJDK، دون الكثير من الصداع.
  • Mercurial سريع، ربما ليس بنفس سرعة GIT، لكنه لا يزال سريعًا حقًا
  • تعد Mercurial Queues طريقة رائعة لإدارة التصحيحات.بسرعة الاضاءة المدهونة .
  • يمكن تشغيله على أنظمة تشغيل مختلفة، والتوافق رائع لأنه يعتمد على لغة بايثون.
  • منحنى التعلم أقل من GIT، وبعد قراءة بعض المستندات، يمكنك الحصول على التفاصيل الأساسية للأشياء (http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/)
  • يسمح لك hg (وكذلك العديد من DSVC) بالتفاعل مع عنصر تحكم مصدر SVN الخاص بالشركة باستخدام hg-svn وhgsubversion وهو امتداد رائع مع السماح والخروج، ولكن لم يتم دفع الوظائف أو الالتزام بها بعد
  • يمكنك أيضًا إعداد خادم HTTP لتشغيل الدفع والسحب عبر SSH
  • لديك أيضًا خيار رائع حقًا للالتقاء برفاقك في البرمجة وبدء تشغيل خادم HTTP ببساطة وتشغيله على مضيف محلي ويمكن لأصدقائك الدفع والسحب أثناء القيام بسباق التعليمات البرمجية.
  • قد ترى أيضًا الحالة الحالية للمشروع عبر صفحة HTTP هذه.
  • أخيرًا، انظر هنا للحصول على وصف موجز للأوامر البسيطة (http://edong.net/2008v1/docs/dongwoo-Hg-PDF.pdf)

شخص سخيف

  • جربته، دعمه لـ svn أفضل من الزئبقي.ولكن نظرًا لأن hgsubversion في ازدياد وأصبح منافسًا لـ git svn.

Git رائع، لكنك تحتاج إلى الحفاظ باستمرار على مستودع التعليمات البرمجية المصدر وإعادة حزمه.نظرًا لأنه يتكون من العديد من نصوص bash، فإنه يواجه مشكلة في التشغيل على نظام التشغيل Windows.ولكنه سريع للغاية، مع العديد من الميزات التي يمكنك استخدامها.في الواقع يمكن أن يكون مقدار الميزات عيبًا.

بيزر

  • لم أجربها من قبل

لم أنظر إلى الوراء منذ أن بدأت مع HG

وأنا شخصيا سيبقى مع التخريب. من وجهة نظر موقف المهنية لقد رأيت الكثير من وظائف تطلب (ويعرف) ما التخريب ومقارنة GIT. أيضا هناك الكثير من المصادر المفتوحة وأدوات مجانية تتمحور حول التخريب، ناهيك عن مجتمع ضخم التخريب.

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

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

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

هنا 3 أسباب للتبديل إلى git من Subversion (من ماركMcB):

  • فروع محلية لا نهاية لها وسهلة وغير قائمة على نظام الملفات
  • إخفاء العمل المؤقت
  • التعاون قبل ارتكاب الجمهور

(اقرأ المقالة المرتبطة للحصول على التوضيحات الكاملة والمقارنات المباشرة حول كيفية القيام بالأشياء الثلاثة في كل من git وSubversion.)

وأنا أيضا شخصيا سيبقى مع التخريب، هل هناك أي شيء أفضل؟

والتخريب هو نظام التحكم في الإصدار كبير، وكنت سعيدة معه، لذلك إذا كنت تبحث أبعد من ذلك، يمكنني أن أوصي لك للحصول على بعض المعلومات عن <لأ href = "http://martinfowler.com/articles/ continuousIntegration.html "يختلط =" noreferrer "> مستمر التكامل ، وهناك العديد من الأدوات هناك التي يمكن أن تساعدك على جعل التلقائي يبني، وجعل يبني بك الاختبار الذاتي، والتحقق من سلامة كل ارتكابها، وأكثر من ذلك بكثير. ..

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

والشيء الوحيد الذي افتقد على محمل الجد هو تورتويز إس في إن. هناك workalike (TortoiseHg) هذا امر جيد جدا، ولكن انها مجرد يست هي نفسها ..

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

القاعدة رقم.1: "لا تغير نظام التشغيل أبدًا"

أيضًا، نظرًا لوجود العديد من الحلول الجديدة اللامعة (للمشاكل التي لا تواجهها، حيث أنك تعمل بمفردك) يجب أن تفكر في تكلفة التحول إلى VCS جديد:إن استيراد التخريب إلى Mercurial/git ليس بالمهمة السهلة

لا توجد أداة (AFAIK) تستورد svn repos باستخدام تنسيق dump.لذا، إذا لم تستخدم تنسيق dumpformat، فسوف تلتزم بمراجعة جميع الفروع/العلامات من svn وإضافتها إلى git/BZR/Mercurial يدويًا/عبر البرنامج النصي

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

المشكلة الإضافية هي الوقت الذي يستغرقه الترحيل حتى لا تتمكن من الاستمرار في العمل.

وأنا مثلك في قضية التحقيق مستمر من أجل الحصول على أفضل وسيلة.

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

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

وعلى الرغم من أنني لا أعرف شيئا عن خوادم التي تدعم زئبقي لالنسخة الإلكترونية من الريبو الخاصة بك.

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

وهناك المثل يانكي القديم.

إذا لم يتم كسر، لا تصلحه.

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

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