سؤال

بالنظر إلى حال قمت بها اثنين من المستقلين التغييرات في واحد ملف:على سبيل المثال.وأضاف طريقة جديدة و تغيير أسلوب آخر.

أنا في كثير من الأحيان لا ترغب في ارتكاب كل التغييرات واحد ارتكاب ولكن كما اثنين المستقلة يرتكب.

على بوابة مستودع أود أن استخدام الوضع التفاعلي من بوابة-إضافة(1) تقسيم قطعة كبيرة إلى أصغر:

 git add --patch

ما هي أسهل طريقة للقيام بذلك مع التخريب ؟ (ربما حتى باستخدام الكسوف في المكونات)

تحديث:
في الشيء عن بوابة, ريان تدعو عليه: "متشابكة تعمل نسخ المشكلة".

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

المحلول

مع git-svn يمكنك جعل المحلية GIT البعيد إس مستودع العمل معها باستخدام كامل بوابة ميزة مجموعة (بما في ذلك الجزئي يرتكب) ومن ثم دفع كل شيء إلى إس مستودع.

git-svn (1)

نصائح أخرى

السلحفاة إس 1.8 الآن يدعم هذا مع أنه "استعادة بعد ارتكاب" الميزة.هذا يسمح لك بإجراء تعديلات على ملف مع كل التعديلات يتم التراجع بعد ارتكاب

في الوثائق:

إلى ارتكاب أجزاء فقط من الملفات التي تتعلق مسألة محددة:

  1. في ارتكاب الحوار, انقر بزر الماوس الأيمن على الملف واختيار "استعادة بعد ارتكاب"
  2. تحرير الملف مثلاTortoiseMerge:التراجع عن التغييرات التي كنت لا تريد أن تلتزم حتى الآن
  3. حفظ الملف
  4. ارتكاب الملف

لقد فعلت هذا باستخدام TortoiseSVN.

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

استخدام إنشاء النسخ الاحتياطي وظيفة من مهرجان دبي السينمائي الدولي فائدة

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

يجب أن يكون لديك الآن جميع التغييرات التي ارتكبت باستخدام اثنين من منفصلة يرتكب.

حاول استخدام svn diff > out.patch ثم نسخ out.patch ملف out.patch.add و out.patch.modify

فقط عندما يكون لديك عمل patch file تعود الملف الأصلي باستخدام svn revert out.c.

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

غسل وشطف كرر out.patch.modify التصحيح.

وإذا كانت التغييرات منفصلة في سؤالك الأول ذكر - إضافة طريقة جديدة ، تغيير القائمة الأسلوب - هذا العمل

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

أنت أيضا يمكن أن يكون فحص متعددة تعمل نسخ من نفس المصدر إلى تطبيق العمل الخاص بك ضد:

svn co http://location/repository methodAdd

svn co http://location/repository methodModify

تأكد svn up واختبار للتأكد من كل شيء على ما يرام.

وهذا ممكن باستخدام TortoiseSvn (ويندوز) منذ v1.8.

4.4.1.ارتكاب الحوار

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

<snip>

4.4.3.ارتكاب أجزاء فقط من الملفات

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

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

بعد ارتكاب فعل نسخة من ملف استعادة تلقائيا, و لديك ملف مع جميع التعديلات التي لم ترتكب مرة أخرى.

على لينكس ، http://webstaff.itn.liu.se/~karlu20/div/blog/2013-05-31_SVNPartialCommit.php المحاولة.لم يحاكم بها نفسي, على الرغم من.

اعتدت أن تفعل هذا:

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

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

الآن يمكنني استخدام بوابة, هذا هو ما آمل أبدا أن تفعل ذلك مرة أخرى!

يمكنني استخدام إما المحلية darcs الريبو ، أو مجرد دمج التغييرات تدريجيا.مع دمج (opendiff يفتح FileMerge, دمج البرنامج الذي يأتي مع كسكودي;استبدال الخاص بك مع المفضلة دمج أداة):

cp file file.new
svn revert file
opendiff file.new file -merge file

دمج التغييرات ذات الصلة ، حفظ دمج ، إنهاء برنامج دمج

svn ci -m 'first hunk' file
mv file.new file
svn ci -m 'second hunk' file

إذا كان أكثر من واحد لا علاقة لها قطعة كبيرة في الملف شطف وتكرار (ولكن لماذا عليك أن تنتظر طويلا قبل ارتكاب?!)

أيضا, إذا كنت تعرف بوابة يمكنك استخدام git-svn للحفاظ على المحلية بوابة الريبو ومزامنة يرتكب إلى إس سيد الخادم ؛ يعمل كبيرة في تجربتي محدودة.

محاولة VisualSVN Visual Studio.على أحدث الإصدار 6.1 يدخل QuickCommit الميزة.يمكنك جزئيا لارتكاب التغييرات المحددة في الملف الجديد ارتكاب هذه الكتلة و ارتكاب اختيار أوامر قائمة السياق في Visual Studio محرر.

enter image description here

  1. فتح جميع الملفات التي تريد تقسيم في محرر-من-اختيار
  2. باستخدام أداة مختلفة مجموعة (على الفوز ، استخدام مسمار اقتراح (النسخة القديمة)) مرة أخرى من المجموعة الثانية
  3. ارتكاب
  4. العودة إلى محرر-من-اختيار وحفظ جميع الملفات

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

أعتقد خيار أسهل من توليد مهرجان دبي السينمائي الدولي في ملفات العودة ، الخ ، لن يكون لديك نسختين من مستودع سحب استخدام visual مهرجان دبي السينمائي الدولي أداة مثل DeltaWalker نسخ الكتل من واحدة إلى أخرى.

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

  1. نسخ كافة الملفات التي تم تعديلها المعنية نسخ احتياطية.
  2. إنشاء التصحيح من دولة العمل باستخدام svn diff.
  3. استرجع الملفات باستخدام svn revert.
  4. إعادة تطبيق أجزاء من التصحيح التي ترغب في ارتكاب إما باستخدام patch أداة ، أو عن طريق التحرير اليدوي ، أو أيا كان.
  5. تشغيل diff بعد ذلك مقارنة نسخة العمل الخاص بك مع النسخ الاحتياطي الخاصة بك للتأكد من تطبيق التصحيح-الأجزاء بشكل صحيح.
  6. بناء الاختبار.
  7. يرتكبها.
  8. نسخ نسخ احتياطية العودة إلى المستودع الخاص بك إجراءات المغادرة.
  9. كرر في 2.(في 1.!) حتى القيام به.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top