ما هي الطريقة الأقل مؤلمة لنقل تغييرات التخريب المحلية إلى جهاز آخر؟

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

  •  05-09-2019
  •  | 
  •  

سؤال

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

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

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

لا أريد تثبيت Cygwin، لذا فإن التصحيح لسطر الأوامر غير مسئول.

أعتقد أن الخيار الأخير سيسفر على فرع جديد لهذه الميزة وانتقل إلى حلقة من "Checkin / Update". ومع ذلك، يتم عرض هذه في تاريخ TRAC إنشاء التلوث هناك.

أي أفكار أفضل؟ أو أي شيء أفتقده؟

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

المحلول

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

ولكن، ربما يمكنك الابتعاد عن تقليص دليل العمل بأكمله وإلقاءه في مكان ما على الجهاز الآخر.

نصائح أخرى

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

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

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

فروع ميزة خفيفة الوزن في التخريب وهي مثالية للعاملين العازل للعمل المحدد مثل هذا. إذا كنت تستخدم Subversion 1.5 أو أكبر، فإن عملية المزامنة والاندماج بأكملها هي أسهل بكثير مما كان عليه خلال 1.4.

أود إنشاء فرع مؤقت لهذا الغرض. بهذه الطريقة، أنت تستخدم فقط أدوات SVN تحت تصرفك وأنت لا تلوث Meta-meta أو نسخ القطع الأثرية.

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

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

يمكنك القيام بذلك لا يزال من خلال القيام بنسخة SVN من نسخ العمل إلى دليل الفرع على الخادم، لذلك لا تحتاج إلى "حلقة من Checkin / Update"، فقط واحد Checkin، فقط واحد تحديث / التبديل، حقا.

مثل SVN نسخة myworkingcopy svn: // theserver / المشروع / الفروع / الميزات / فرع بلدي الميزة

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

أو يمكنك الذهاب إلى فرع وتأكد من أنك لا تنسى الالتزام بأي تغييرات على الكمبيوتر المحمول قبل الانتقال إلى سطح المكتب. :-)

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

حسنا، سوف يجادل معظم الناس أنه إذا كان "مجموعة التغيير كبيرة جدا"، يجب عليك بالتأكيد التحقق من التغييرات في (في فرع ضروري)!

يمكنك المحاولة سفك. وبعد من مدونة آخر وموقع SVK، سيناريو استخدام SVK النموذجي

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

ليس لدي أي تجربة عملية لاستخدام SVK. لكنني أعتقد أنه يطابق السيناريو الخاص بك. تصف هذا المدونة هذا بمزيد من التفاصيل http://www.bieberlabs.com/archives/2004/11/30/using-svk/

أعتقد أن إصدار Windows من SVK متاح (svkwin32.) يمكن للسلاحفتين ثم استخدام المرآة المحلية للمستودع لتحديث / ارتكابها.

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