هل تستخدم التحكم في الإصدار بخلاف كود المصدر؟[مغلق]

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

  •  08-06-2019
  •  | 
  •  

سؤال

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

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

المحلول

لقد رأيت التحكم في الإصدار يتم استخدامه لأغراض أخرى غير التعليمات البرمجية المصدر، مثل،

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

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

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

نصائح أخرى

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

لقد سمعت أيضًا عن أشخاص يستخدمون نظام التحكم في الإصدار لأدلة منازلهم.

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

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

أقوم بتحرير الكثير من المستندات باستخدام LaTeX، لذا أستخدم SVN لتخزين ملفات tex والصور وما إلى ذلك.مفيد للقيام بالفرق، وآمل أن ينقذني إذا تعرضت لكارثة.

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

لدي مجلد في المسار يسمى bin يحتوي على أدوات مساعدة مفيدة مثل تلك الموجودة في sysinternals وغيرها.أستخدم svn لتحديثها على أجهزة مختلفة.أيضًا، أشياء مثل البرامج النصية Powershell وملفات vimrc وما إلى ذلك.رائعة للحفاظ على المركزية.

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

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

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

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

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

أستخدمه من أجل:

  • قائمة مهام إنجاز الأمور المكونة من ملف واحد (انظر yagtd, ، الأداة التي أستخدمها)
  • قاعدة بيانات كلمة المرور الخاصة بي (كان يجب أن أرسل هذا الاقتراح إلى البث الصوتي StackOverflow ردًا على سؤال جويل)
  • جميع ملاحظاتي وملفاتي العشوائية المتعلقة بالمشاريع
  • مجموعة من جداول البيانات (بما في ذلك تلك التي تتتبع بعض الأشياء الشخصية يومًا بعد يوم)
  • بعض الصور (مثل الصور الرمزية للويب التي أستخدمها)

بالإضافة إلى ذلك، قمت بكتابة شيء أعلى Subversion لإدارة ملفات التكوين لكل من الأنظمة وحسابات المستخدمين الخاصة بي.لدي الكثير من الحسابات على العديد من الأجهزة، وقد سئمت من إعادة تعلم كيفية تكوين shell/vim/...لذلك أقوم الآن بتخزين معظم هذه الأشياء في التحكم في الإصدار أيضًا.يتضمن ذلك ملفات توقيع البريد الإلكتروني، ومجموعة من نصوص shell في $HOME/bin،...

أستخدم التحكم في المراجعة لجميع مستنداتي تقريبًا لأي غرض من الأغراض.

أنا أستخدم Mercurial، لذا فإن إعداد مستودع جديد في دليل معين هو أمر بسيط "hg init"، والذي وجدته أقل صعوبة بكثير من إعداد مستودع Subversion جديد.

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

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

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

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

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

أرغب في التفكير بجدية في DVCS مثل git أو Mercurial.ولكن ما لم يتمكن من قفل تنسيق الملف الثنائي (أي.unmergable) (وبالتالي أصبحت أشبه بنموذج مركزي لمثل هذه الملفات)، و/أو دمج تنسيقات الملفات الثنائية التي نستخدمها، فلن تتناسب مع استخدام شركتي.

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

أستخدم SVN للتحقق من التغييرات التي تم إجراؤها على ملفات تكوين Asterisk VOIP Server.لدي مستودع واحد يحتوي على مجلد يتوافق مع كل خادم من الخوادم المتعددة.يحتوي هذا المجلد على محتويات /etc/asterisk.

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

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

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