Vấn đề là bất kỳ forking cam kết tạo ra một chi nhánh "vô danh" (như trái ngược với một chi nhánh được đặt tên, mà là một khái niệm hơi khác nhau), và xem đồ thị mặc định không thể đặt cam kết trong các cột tĩnh mà không có id tốt. Do đó, người triển khai đã từ bỏ và chúng tôi có biểu đồ hiện tại.
Bây giờ, tôi nghĩ giao diện đầu tiên bạn cho là tuyệt vời và có thể sử dụng một số chẩn đoán để gán id cho các nhánh ẩn danh tùy thuộc vào (developer1-a, developer2-a, developer2-b, v.v.). Điều đó thật tuyệt. :)
Thời gian đóng góp!
Cập nhật
Những gì tôi muốn xem:
- cam kết sắp xếp theo chiều dọc bằng cách cam kết thời gian, chứ không phải là sửa đổi nguyên id.
- Các cam kết được sắp xếp theo chiều ngang, được nhóm theo chi nhánh được đặt tên và mỗi người gửi trong mỗi nhánh. (Và mỗi ủy thác cam kết sẽ ở gần, trong trường hợp một người giao dịch đã chia đôi và sáp nhập dữ liệu của riêng mình.)
Điều này có nghĩa là một thuật toán phải xem xét tất cả các cam kết (sẽ được xem) trước khi điền chế độ xem và đặt cam kết "dấu chấm" trong cột/hàng bên phải.
Ba đi ngang qua tất cả các cam kết phải đủ mặc dù, và mỗi thể được thực hiện trong thời gian O (n) thời gian, đó là O (n) cho tất cả mọi thứ:
- đi bộ tất cả để thu thập dữ liệu (tập hợp chi nhánh/ủy ban) (O (n))
- phân loại các chi nhánh/cam kết theo thứ tự cột thích hợp
- sắp xếp cam kết theo thời gian cam kết (O (n log n) hoặc O (n) tốt hơn bằng giây trên epoch)
- thực hiện các cam kết và vẽ các dấu chấm và dòng tổ tiên theo nhóm
Có lẽ chúng ta cần phải thông minh (er) khi định tuyến các đường giữa các cam kết, nhưng vẫn còn để được nhìn thấy. Đặc biệt, chúng tôi có thể sử dụng khoảng cách dọc giữa các dấu chấm để kết hợp các kết hợp cách nhau theo chiều dọc (tức là theo thời gian), thay vì sử dụng toàn bộ cột như thuật toán hiện tại
bất kỳ cập nhật nào về cách bạn thực hiện TortoiseHG hiển thị vị trí tĩnh cho chi nhánh ? – tkokasih
@wannabeprogrammer Không phải từ phía tôi. Kể từ khi tôi đã viết câu hỏi này tôi đã học được để ngừng suy nghĩ về các chi nhánh (ClearCase hoặc Subversion phong cách) và thay vào đó xem nó như là dấu trang. Chuyển sang Git đã giúp với điều đó. – MdaG