2009-05-01 28 views
16

Tôi buộc phải sử dụng Visual Source Safe 2005 tại nơi làm việc. Tôi muốn kết hợp nó với một DVCS, để tôi có thể kiểm tra các tập tin cục bộ mà không làm gián đoạn đồng nghiệp của tôi nếu có lỗi hoặc nó không biên dịch.Kết hợp DVCS với An toàn Nguồn Trực quan

Trong nỗ lực của tôi với Mercurial, nó hoạt động, nhưng gây ra một vài vấn đề lạ. Cụ thể, nó nghĩ rằng ai đó đã kiểm tra các tập tin tôi đã kiểm tra.

Dưới đây là những suy nghĩ của tôi về cách tôi nên quản lý nó:

  1. Disable auto-kiểm tra.
  2. làm việc tại địa phương trong Mercurial
  3. Khi tôi đã sẵn sàng để đẩy thay đổi của tôi ...
    1. Clone kho Mercurial tôi.
    2. Cập nhật kho lưu trữ an toàn nguồn trực quan của tôi
    3. Kéo và hợp nhất hai kho lưu trữ bằng Mercurial.
    4. Kiểm tra mọi thứ vào An toàn nguồn trực quan.

Điều này có hợp lý không? Tôi luôn luôn nghe những điều xấu về VSS, điều này chỉ yêu cầu tôi xem những vấn đề đó trực tiếp?

+0

câu hỏi đặt ra cần được viết lại để một chính xác hơn một: "làm thế nào để tạo ra một hệ thống kiểm soát phiên bản tốt suck" –

+0

Tôi đang ở cùng vị trí. Nhưng quá trình bạn đã mô tả âm thanh tồi tệ hơn bằng cách sử dụng vss của chính nó :-) –

+0

Tôi đẩy những thay đổi hiếm khi, vì vậy nó sẽ không quá xấu. – WBlasko

Trả lời

13

WBlasko

Tôi đã tìm thấy cùng một vấn đề. Tôi muốn thay đổi tệp và hợp nhất chúng khi cần thay vì chờ một số nhà phát triển khác mở khóa. Các giải pháp mà làm việc cho tôi là:

1) Lấy phiên bản mới nhất của một dự án VSS (tôi đặt tất cả các dự án VSS dưới VSS):

c:\vss\projectA 

2A) Khởi tạo với Mercurial

cd vss\projectA 
C:\vss\projectA>hg init 

2B) Sao chép dự án đến địa điểm có thể thay đổi theo ý muốn

hg clone vss\projectA myProjects\projectA 

3) Lấy thay đổi mới nhất s từ bản sao VSS (bỏ qua nếu bạn đến từ 1 và 2)

C:\myProjects\projectA>hg pull 
C:\myProjects\projectA>hg update 
(solve conflicts if any) 

4) Làm việc theo ý muốn với phiên bản nhân bản. Sau đó, đẩy công việc của bạn để sao chép VSS:

C:\myProjects\projectA>hg push 
(don't run hg update yet, wait for VSS latestes version) 

5) Bây giờ, thực hiện một kiểm tra của tất cả các tập tin vào dự án VSS

6) Run "hg cập nhật" về dự án VSS để nhập các thay đổi của bạn thay đổi VSS mới nhất.

C:\vss\projectA>hg update 
(if there are conflicts, resolve them) 

7) Cam kết những thay đổi

C:\vss\projectA>hg commit 

8) Thực hiện một VSS checkin (phát hành ổ khóa để các folks khác) Quay trở lại bước 3. lặp lại bước 3-8 mãi mãi sau đó .. .;-)

Bằng cách này bạn có thể làm việc với hệ thống kiểm soát phiên bản tốt trong khi vẫn có thể "nói chuyện" với các dự án cũ. Bạn cũng sẽ được có thể thưởng thức: a) Không có vấn đề với các tập tin bị khóa b), bạn có thể chia sẻ kho lưu trữ của bạn với những người khác mà biết làm thế nào để sử dụng Hg c) làm cho chi nhánh, vv

Chỉ cần cẩn thận để cập nhật đầu tiên/giải quyết xung đột, kiểm tra và sau đó thực hiện VSS checkin

Chúc mừng, Luis

+1

Ý tưởng tuyệt vời. Làm thế nào để bạn xử lý các ràng buộc VSS trong VS? Nếu tôi nhớ chính xác, các ràng buộc đó được lưu trữ trong các tệp giải pháp và dự án. Vì vậy, khi bạn làm việc trong thư mục "nhân bản" của bạn, VS sẽ vẫn nghĩ rằng giải pháp là ràng buộc với VSS. – mlsteeves

+1

@mlsteeves: Tôi nghĩ nếu bạn vô hiệu hóa tính năng tự động thanh toán, nó sẽ ổn. –

+0

Điều này hoạt động, cảm ơn. Điều duy nhất mà tôi đã làm khác đi, là tôi giữ một thẻ gọi là "VSS" cho tôi biết vị trí của vss \ projectA. Bằng cách này, tôi có thể thực hiện trạng thái 'hg --ref xx: yy' (trong đó xx và yy là số sửa đổi) để lấy danh sách các tệp đã được sửa đổi, sau đó chỉ kiểm tra các tệp đó. – mlsteeves

Các vấn đề liên quan