On 14/04/2011 17:28, Nguyen Vu Hung (VNC) wrote:
> (2011/04/14 17:03), Lê Xuân Thảo wrote:
>> On 14/04/2011 17:01, Nguyen Vu Hung (VNC) wrote:
>>> (2011/04/14 16:56), Lê Xuân Thảo wrote:
>>>>> Cấu trúc thư mục ở 2 repo *gần* giống nhau.
>>>>>> Nhiệm vụ hằng ngày của em là vpn vào repo thứ nhất, chạy svn update,
>>>>>> soi svn log và đưa các file thay đổi vào svn thứ hai.
>>>> Cho hỏi thêm là khi đưa các thay đổi vào kho thứ hai bác có giữ lịch sử
>>>> thay đổi hay không? ví dụ changeset 1 thay đổi dòng x trong file A,
>>>> changeset 2 thay đổi dòng y trong file A chẳng hạn.
>>> Không cần giữ change log (đây là giới hạn của svn so với git)
>>>
>> oái, thế bác ko cần push ngược lại kho của khách hàng à?
> Có cần svn commit từ nhà lên kho của khách hàng chứ.
> Trong những lúc đó, nói chung là không cần merge, nhưng nếu cần thì rất
> phiền.
> 

Nếu ở trong tình huống của bác thì em sẽ dùng workflow như sau với
mercurial + hgsubversion extension:

1. clone từ kho svn của khách hàng:

$ hg clone svn+http://khách_hàng/svn nội_bộ

2. bắt đầu chỉnh sửa và commit (khách hàng cũng chỉnh sửa và commit)

3. pull thay đổi từ kho của khách hàng

$ hg pull --svn

đến đây kho nội_bộ sẽ có dạng:

o SửaNộiBộ2
|            o KháchHàngSửa3
|            |
|            |
o SửaNộiBộ1  |
 \           o KháchHàngSửa2
   \         |
     \       o KháchHàngSửa1
       \     |
         \   |
           - o KhoGốc

4. rebase toàn bộ những changeset nội bộ lên nhánh của khách hàng

$ hg rebase --svn

(fix conflict nếu có)

đến đây kho nội_bộ sẽ có dạng:


o SửaNộiBộ2
|
|
|
o SửaNộiBộ1
|
|
o KháchHàngSửa3
|
|
|
o KháchHàngSửa2
|
o KháchHàngSửa1
|
|
o KhoGốc


5. kiểm tra lại log thay đổi sẽ gửi đi và push trở lại kho của khác hàng

$ hg out

$ hg push


QUAY LẠI BƯỚC 2.


Chú ý là em chưa tự tay dùng flow này bao giờ nên khi áp dụng thực tế có
thể sẽ có thay đổi. Em tin là với git-svn thì flow cũng tương tự. Ở đây
khách hàng hoàn toàn không cần quan tâm là trong nội bộ mình dùng SCM
nào. Chú ý quan trong nữa là từ bước 4 và kết thúc bước 5 thì kho của
khách hàng không được phép có thêm changeset mới, nếu có thì phải pull
lại và rebase lại.
_______________________________________________
POST RULES : http://wiki.hanoilug.org/hanoilug:mailing_list_guidelines
_______________________________________________
HanoiLUG mailing lists: http://lists.hanoilug.org/
HanoiLUG wiki: http://wiki.hanoilug.org/
HanoiLUG blog: http://blog.hanoilug.org/

Trả lời cho