git-merge-changelog - Trực tuyến trên đám mây

Đây là lệnh git-merge-changelog có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


git-merge-changelog - trình điều khiển git merge cho các tệp GNU ChangeLog

MÔ TẢ


Trình điều khiển hợp nhất mặc định của 'git' luôn luôn tạo ra xung đột khi kéo công
sửa đổi thành tệp ChangeLog được sửa đổi riêng. Điều này là do các tệp ChangeLog
luôn được sửa đổi ở trên cùng; trình điều khiển hợp nhất mặc định không có manh mối làm thế nào để đối phó với
cái này. Hơn nữa, các xung đột được trình bày với nhiều <<<< ==== >>>> điểm đánh dấu hơn
cần thiết; điều này là do trình điều khiển hợp nhất mặc định thực hiện những nỗ lực vô nghĩa để xem xét
các dòng riêng lẻ thay đổi bên trong mục nhập ChangeLog.

Chương trình này hoạt động như một trình điều khiển hợp nhất 'git' để tránh những vấn đề này.

1. Nó không tạo ra xung đột khi các mục nhập ChangeLog đã được chèn ở đầu cả hai trong
công khai và trong sửa đổi tư nhân. Nó đặt các mục được thêm riêng tư ở trên
các mục nhập được thêm công khai.

2. Nó tôn trọng cấu trúc của các tệp ChangeLog: các mục nhập không được chia thành các dòng nhưng
giữ cùng nhau.

3. Nó cũng xử lý các trường hợp sửa đổi nhỏ của các mục nhập ChangeLog trước đây hoặc của
đã loại bỏ các mục nhập ChangeLog: chúng được hợp nhất như người ta mong đợi.

4. Xung đột được trình bày ở đầu tệp, thay vì nơi chúng xảy ra, vì vậy
rằng người dùng sẽ nhìn thấy chúng ngay lập tức. (Không giống như mã nguồn được viết bằng một số
ngôn ngữ lập trình, các điểm đánh dấu xung đột nằm cách đó vài trăm dòng
phần trên cùng sẽ không gây ra bất kỳ lỗi cú pháp nào và do đó sẽ có khả năng vẫn còn
không được chú ý.)

Trong cáp git người dùng:
- Thêm vào .git / config của thanh toán (hoặc vào $ HOME / .gitconfig của bạn) các dòng

[hợp nhất "merge-changelog"]
name = Trình điều khiển hợp nhất ChangeLog kiểu GNU
trình điều khiển = / usr / bin / git-merge-changelog% O% A% B

- Trong mọi thư mục chứa tệp ChangeLog, hãy thêm tệp '.gitattributes' với
đường thẳng này:

ChangeLog merge = merge-changelog

(Xem "man 5 gitattributes" để biết thêm thông tin.)

Trong cáp bzr người dùng:
- Cài đặt plug-in bzr 'extmerge' được liệt kê tại
<http://doc.bazaar.canonical.com/plugins/en/index.html>
<http://wiki.bazaar.canonical.com/BzrPlugins>

- Thêm vào dòng $ HOME / .bazaar / bazaar.conf của bạn

external_merge = git-merge-changelog% b% T% o

- Sau đó, để hợp nhất xung đột trong tệp ChangeLog, hãy sử dụng

$ bzr extmerge Nhật ký thay đổi

Trong cáp hg người dùng:
- Thêm vào $ HOME / .hgrc của bạn các dòng

[hợp nhất-các mẫu]
Nhật ký thay đổi = git-merge-changelog

[công cụ hợp nhất]
git-merge-changelog.executable = / usr / bin / git-merge-changelog
git-merge-changelog.args = $ base $ local $ other

Nhìn thấyhttp://www.selenic.com/mercurial/hgrc.5.html> phần công cụ hợp nhất để tham khảo.

Sử dụng as an thay thế đến 'diff3':
git-merge-changelog thực hiện vai trò giống như "diff3 -m", chỉ với các đối số được sắp xếp lại:

$ git-merge-changelog% O% A% B

có thể so sánh với

$ diff3 -m% A% O% B

đang gọi quy ước:
Một trình điều khiển hợp nhất được gọi với ba đối số tên tệp:

1.% O = Tổ tiên chung của% A và% B.

2.% A = Nội dung của tệp từ "nhánh hiện tại".

3.% B = Nội dung của tệp từ "nhánh khác"; đây là nội dung đang được hợp nhất
.

Trong trường hợp "áp dụng git stash" hoặc kéo ngược dòng (ví dụ: từ người bảo trì hệ thống con đến
một người bảo trì trung tâm) hoặc của một kéo hạ lưu với --rebase:

2.% A = Nội dung được kéo mới nhất của tệp; được sửa đổi bởi những người cam kết khác.

3.% B = Bản sao tệp mới nhất của người dùng; được sửa đổi bởi người dùng.

Trong trường hợp kéo xuống (ví dụ: từ kho lưu trữ trung tâm đến người dùng) hoặc
kéo ngược dòng với --rebase:

2.% A = Bản sao tệp mới nhất của người dùng; được sửa đổi bởi người dùng.

3.% B = Nội dung được kéo mới nhất của tệp; được sửa đổi bởi những người cam kết khác.

Nó sẽ ghi kết quả hợp nhất của nó vào tệp% A. Nó cũng có thể lặp lại một số nhận xét với stdout.
Nó sẽ thoát với mã trả về 0 nếu hợp nhất có thể được giải quyết rõ ràng hoặc bằng XNUMX
trả lại mã nếu có xung đột.

Làm thế nào it công trình:
Cấu trúc của tệp ChangeLog: Nó bao gồm các mục ChangeLog. Một mục nhập ChangeLog
bắt đầu từ một dòng sau một dòng trống và bắt đầu bằng một ký tự không có khoảng trắng,
hoặc ở đầu tệp. Trình điều khiển hợp nhất hoạt động như sau: Nó đọc ba
các tệp vào bộ nhớ và phân tách chúng thành các mục ChangeLog. Sau đó, nó tìm ra sự khác biệt
giữa% O và% B. Chúng được phân loại là:

- loại bỏ (một số mục nhập liên tiếp bị xóa),

- thay đổi (một số mục nhập liên tiếp bị xóa, một số mục nhập liên tiếp được thêm vào),

- bổ sung (một số mục nhập liên tiếp được thêm vào).

Sau đó, trình điều khiển cố gắng áp dụng các thay đổi cho% A. Để đạt được hiệu ứng này, trước tiên nó tính toán một
sự tương ứng giữa các mục nhập trong% O và các mục nhập% A, sử dụng chuỗi mờ
khớp để vẫn xác định các mục đã thay đổi.

- Các lần xóa được áp dụng từng cái một. Nếu mục nhập có trong% A, ở bất kỳ vị trí nào, thì nó là
loại bỏ. Nếu không, việc xóa được đánh dấu là xung đột.

- Các bổ sung ở đầu% B được áp dụng ở đầu% A.

- Bổ sung giữa mục nhập x và mục nhập y (y có thể là phần cuối của tệp) trong% B được áp dụng
giữa mục nhập x và mục nhập y trong% A (nếu chúng vẫn tồn tại và vẫn liên tiếp trong
% A), nếu không thì các bổ sung được đánh dấu là xung đột.

- Các thay đổi được phân loại thành "thay đổi đơn giản":
entry1 ... entryn được ánh xạ tới
added_entry ... added_entry mod_entry1 ... mod_entryn, trong đó
sự tương ứng giữa entry_i và modentry_i vẫn còn rõ ràng; và "những thay đổi lớn":
đây là tất cả những thứ còn lại. Các thay đổi đơn giản ở đầu% B được áp dụng bằng cách đặt
đã thêm các mục ở đầu% A. Các thay đổi trong các thay đổi đơn giản được áp dụng từng cái một;
có thể dẫn đến xung đột một mục nhập. Những thay đổi lớn được áp dụng trên toàn khối, có thể
dẫn đến xung đột kéo dài nhiều mục nhập.

- Xung đột được xuất ở đầu tệp và gây ra trạng thái thoát là 1.

Sử dụng git-merge-changelog trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất