سؤال

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

في ظل هذا الوضع، هل يجب أن أنتظر وأرى أيهما سيحتل القمة؟ما هي مزاياها النسبية؟

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

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

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

المحلول

أهم شيء في التحكم في الإصدار هو:

فقط ابدأ في استخدامه

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

من السهل جدًا التحويل منه

cvs<->svn<->git<->hg

لا يهم أي واحد تختاره.ما عليك سوى اختيار الأسهل بالنسبة لك لاستخدامه والبدء في تسجيل سجل التعليمات البرمجية الخاصة بك.يمكنك دائمًا الترحيل إلى (D)VCS آخر لاحقًا.

إذا كنت تبحث عن واجهة مستخدم رسومية سهلة الاستخدام، فاطلع على السلحفاةSVN (ويندوز) و الإصدارات (ماك) (مقترح من قبل codingwithoutcomments)


يحرر:

قال pix0r:

يحتوي Git على بعض الميزات الرائعة، لكنك لن تتمكن من تقديرها إلا إذا كنت قد استخدمت بالفعل شيئًا أكثر معيارية مثل CVS أو Subversion.

هذا.استخدام git لا معنى له إذا كنت لا تعرف ما يمكن أن يفعله التحكم في الإصدار لك.

تحرير 2:

رأيت للتو هذا الرابط على reddit: ورقة الغش التخريب.مرجع سريع جيد لسطر الأوامر svn.

نصائح أخرى

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

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

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

إذا كنت جديدًا في التحكم في الإصدار، فاقرأ هذا:
كيفية التحكم بالمصدر

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

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

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

اذهب إلى SVN.

للحصول على شرح ودي لمعظم المفاهيم الأساسية، راجع دليل مرئي للتحكم في الإصدار.المقالة صديقة جدًا لـ SVN.

لقد استخدمت RCS، وCVS، وSCCS، وSourceSafe، وVault، وperforce، وSubversion، وgit.

لقد قمت بتقييم BitKeeper، وDimensions، وarch، وbazaar، وsvk، وClearCase، وPVCS، وSynergy.

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

إنه مجاني، سريع، وقيد التطوير النشط.

ويمكنك استخدامه كعميل لأي مستودع تخريب باستخدام git-svn.

انها الصخور.

@superjoe30

ماذا عن استخدام التحكم بالمصادر على جهاز الكمبيوتر الخاص بك، إذا كنت المبرمج الوحيد؟هل هذه ممارسة جيدة؟هل هناك نصائح أو حيل ذات صلة؟

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

مقدمة مدتها 5 ثوانٍ (بافتراض أنك قمت بتثبيتها)

cd myproject
git init
git add * # add all the files
git commit

في المرة القادمة التي تقوم فيها ببعض التغييرات

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a

طالما أنك تفعل ذلك، فإن git يدعمك.إذا أخطأت، فإن الكود الخاص بك سيكون آمنًا في مستودع git الجميل.إنه رائع

  • ملحوظة:قد تجد أن إخراج الأشياء من git أصعب قليلاً من إدخالها، ولكن من الأفضل أن تواجه هذه المشكلة بدلاً من عدم امتلاك الملفات على الإطلاق!

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

ومع ذلك، من الممكن أن يكون البدء من قائمة فارغة باستخدام git أسهل في الواقع - تجربتي في VCS كلها مع التحكم المركزي في الإصدار (CVS، SVN، Perforce...) وجزء من الصعوبة (المستمرة!) التي أواجهها مع git كانت فهم الآثار المترتبة على النموذج الموزع.لقد ألقيت نظرة سريعة على أنظمة DVCS الأخرى مثل Bazaar وMercurial وبدا أنها أكثر ملاءمة للمبتدئين إلى حد ما.

على أي حال، كما قال الآخرون، ربما يكون Subversion هو أسهل طريقة للتعود على عقلية التحكم في الإصدار والحصول على خبرة عملية لفوائد VCS (التراجع، الفروع، التطوير التعاوني، مراجعة التعليمات البرمجية بشكل أسهل، إلخ).

أوه، ولا تبدأ بـ CVS.إنها لا تزال قيد الاستخدام العملي، ولها مزايا، ولكن IMHO بها الكثير من المراوغات التاريخية ومشاكل التنفيذ (الالتزامات غير الذرية!) لتكون طريقة جيدة للتعلم.

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

ولكن كما قال الآخرون قبلي، فقط ابدأ في استخدامه.يعد التحكم في المصدر جزءًا مهمًا من عملية تطوير البرمجيات.لا ينبغي أن يكون أي مشروع برمجي "جاد" بدونه.

في وظيفتي الحالية، لم يستخدم سلفي أي نوع من التحكم في الإصدار.لا توجد سوى جبال من المجلدات في 3 أماكن مختلفة على الأقل حيث احتفظ بجميع مشاريعه.من المتوقع أن يجد أي مجلد مشروع عشوائي اسم مجلد واحد على الأقل "مشروع (OLD)" ومجلدًا واحدًا يسمى "مشروع"

مع التحكم في الإصدار، لن تضطر أبدًا إلى عمل نسخ من الإصدارات "الآمنة".لا داعي للقلق حقًا بشأن إفساد IDE الخاص بك للملف الذي تعمل عليه (أنا أنظر إليك، REALBasic 5.5) لأنه من السهل جدًا الالتزام به (اقرأ:حفظ) عملك كل يوم.

وغني عن القول أنني قمت بتثبيت التحكم في الإصدار في اليوم التالي لاكتشاف وجوده.

كما أن TortoiseSVN يجعل الالتزام بقاعدة البيانات أمرًا سهلاً مثل النقر بزر الماوس الأيمن على المجلد.

جرب أيضا svn المرئية لخادمك إذا كنت تريد تجنب أي عمل في سطر الأوامر.

إذا كنت تستخدم نظام التشغيل Mac OSX، فقد وجدت http://www.versionsapp.com/">الإصدارات بمثابة واجهة أمامية رائعة (مجانية) لواجهة المستخدم الرسومية لـ SVN.

تتفوق Git على التخريب، لكنها على حافة النزيف قليلاً.

أود أن أقول، إذا كنت قد بدأت للتو، فاقفز على الحافة؛قم بإعداد حساب مجاني @ http://github.com

لديهم مواد تعليمية في الموقع لإعداد واستخدام git.

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

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

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

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

استخدم TortoiseSVN (version.app إذا كان يعمل بنظام التشغيل Mac).مجرد تثبيت والذهاب.إذا كنت بحاجة إلى مكان لاستضافة الكود الخاص بك، فانظر إليه http://beanstalkapp.com/

يعد SubVersion هو الخيار الأفضل بالنسبة لك، كما أشار Karl Seguin إلى أن الانتقال إلى نظام إصدار آخر لن يمثل مشكلة.يحتوي SVN أيضًا على واجهات مستخدم رسومية سهلة الاستخدام للغاية في جانب العميل (TortoiseSVN).

http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

إذا اخترت استخدام التخريب وتريد استضافة خادم svn الخاص بك، فهناك خادم لطيف جدًا وسهل الاستخدام يعتمد على نظام التشغيل Windows يسمى خادم VisualSVN.إنه يخفي تعقيد إعداد خادم Apache، ما عليك سوى الانتقال إلى الخطوة التالية.تتم معالجة تكوين المستخدم باستخدام واجهة مستخدم الويب، بدلاً من التكوين

http://www.visualsvn.com/server/

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

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

لذلك قمت ببساطة بتثبيت خادم SVN وTortoise SVN للعميل وتعمقت في الأمر ولم أتعلم كيفية استخدامه على طول الطريق.

ابدأ باستخدام SVN لعملك الفعلي، ولكن حاول تخصيص الوقت للتلاعب بـ Git و/أو Mercurial.يعتبر SVN مستقرًا إلى حد معقول بالنسبة للإنتاج، ولكن في النهاية ستواجه سيناريو حيث ستواجه ذلك يحتاج SCM موزعة، وفي ذلك الوقت ستكون مسلحًا بشكل صحيح وستكون الأنظمة الجديدة ناضجة بدرجة كافية.

نعم، SVN هو المفضل ما لم تكن بحاجة حقًا إلى ميزات git الخاصة.SVN صعب بما فيه الكفاية؛يبدو أن التعايش مع git أكثر تعقيدًا.يمكنك الحصول على svn مستضاف من أشخاص مثل شجرة الفاصولياء - ما لم يكن لديك موظفين يعملون بنظام Linux، فإنني أوصي به حقًا.يمكن أن تسوء الأمور بسهولة، ومن الجيد أن يكون لديك شخص آخر تكون مهمته إصلاحها.

هناك ممتاز درس تعليمي حول التحكم بالمراجعة من Eric Sink والذي يستحق القراءة بغض النظر عن النظام الذي تستخدمه.

يكتب superjoe30:

سؤال ذو صلة (ربما يمكن تحرير الإجابات للإجابة على هذا السؤال أيضًا):

ماذا عن استخدام التحكم بالمصادر على جهاز الكمبيوتر الخاص بك، إذا كنت المبرمج الوحيد؟هل >>هذه ممارسة جيدة؟هل هناك نصائح أو حيل ذات صلة؟

أستخدم SVN لجميع مشاريعي الشخصية.لقد بدأت بتشغيل svn على جهازي المنزلي ولكنني انتقلت في النهاية إلى Dreamhost.حزم الاستضافة الخاصة بهم والتي تتضمن Subversion معقولة جدًا.

إذا كان الحل السريع والقذر موجودًا في صندوق النوافذ فهو CVSNT.سهل الاستخدام فقط قم بإعداده ويعمل بشكل جيد للغاية.

أنا شخصياً أفضل SVN ولكن هذا جيد للاستخدام السريع.

سأختار بالتأكيد SVN بدلاً من CVS، فقط لأن الأشخاص الذين تعلموا التحكم بالمصادر باستخدام CVS، يميلون إلى استخدام "svn delete" ثم "svn add" بدلاً من "svn move".مما يجعل من الصعب العثور على كافة المراجعات السابقة لملف معين.ويمكنك دائمًا الترقية إلى استخدام git-svn.أنا شخصياً أعتقد أنه من الأسهل التعلم من الزئبق، ولكن في الواقع رئيسي سبب استخدام SVN هو أنه أصبح إلى حد كبير نظام التحكم في الإصدار الفعلي للبرامج مفتوحة المصدر.

إذا كنت تخطط للتعلم / الاستخدام د يكاد يكون من الإلزامي الوصول إلى مستودعات الطرف الثالث، مثل دمصدر.

@superjoe30 نعم بالتأكيد.بمجرد البدء في استخدام التحكم في الإصدار، فلن تعود أبدًا.أستخدمه في كل شيء، حتى المجلد "المنزلي" الخاص بي.

@Orion Edwards Subversion لا يتطلب خادمًا.يمكنك الوصول إلى مستودع محلي مباشرة (عبر عميل بالطبع)، ولا توجد عملية خادم معنية.

ما عليك سوى استخدام TortoiseSVN، ويمكنك العيش حتى دون معرفة أوامر Subversion الفعلية...لكن هذا سيء.ولحسن الحظ، ستكون هناك دائمًا "فرصة عظيمة" لحفظها عن ظهر قلب - عندما يتلف مستودعك الذي لا يقدر بثمن لأول مرة.

نعم، يحدث ذلك.

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

أقترح تثبيت خدمة Subversion Service بدلاً من استخدام file:// URLs، ولكن هذا في الغالب تفضيل شخصي.بالنسبة للمستودع المخزن على جهاز التطوير الخاص بك، الملف:// يعمل بشكل جيد.

من تجربتي الشخصية، svn سيكون توصيتي.يمكنك حتى استخدام خدمة مثل شجرة الفاصولياء يقدم حسابات مجانية (مع حدود واضحة، ولكنها كافية لأي مشروع صغير) لاختبار الوضع.ولكن كما قال آخرون، فإن git متفوق ومن المحتمل أن يستحق النظر فيه.

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

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