سؤال

نظرت إلى كيفية إنشاء دليل جذع في SVN Repo الحالي بدون جذع وتحريك الكل, ومع ذلك ، قد يكون الأمر قابلاً للتطبيق ، لكن لدي "صندوق جذع" ، لكن الطريقة التي قد تستورد بها المطور ، أحد كبار في ذلك ، أن يوفر المشروع إلى SVN Repos مراجعة يستحق الفرق.

يبدو ، بالنظر إلى السجل ، أن يقوم المطور بإنشاء شجرة SVN محليًا ، trunk/branches/tags الدليل ، أنشأ جميع الملفات في branches الدليل ، ثم على الاستيراد الأولي إلى svn, ، ملتزم الجذع والعلامات كجزء من الفروع الالتزام.

هذا يعني أنه لا يوجد تاريخ لنسخة إلى فرع. السجل ، في القريب ، هو:

% cd work
% mkdir -p project/trunk project/branches project/tags
% cd project/branches
... begin a bunch of work on a java service v1.0
... happy lets import to svn
% cd ..
% pwd project
% svn import -m"Initial import"
A branches
A branches/file-n
A branches/file-n ...
A tags
A trunk
Sending...
Committed rn
% svn mv $repos/project $repos/project_name
...
Committed rn

لذا svn merge لا يعمل حقا هنا. trunk هو جزء من الالتزام الأولي ، التاريخ لا يسمح حقًا بدمج نظيفة.

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

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

المحلول

لقد حللت هذا بمزيج من بعض الأشياء هنا في SO.

في النهاية ، لم تكن الخطوة تعمل في عملية بناء مؤسستنا. هذا من شأنه أن يحافظ على تاريخ الفرع على الجذع ، لكنه ترك الفرع فارغًا. بنيتنا لم تكن تحب ذلك.

بدلاً من ذلك قمت بنسخ الملفات إلى دليل الجذع ، بلا .svn أدلة بالطبع ، عبر svn export وارتكبهم.

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

ردود الفعل مرحبًا.

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