Có những lợi thế khi sử dụng DVCS cho nhà phát triển solo?


19

Ngay bây giờ, tôi sử dụng svn trực quan trên máy chủ của mình và có ankhsvn / rùa trên máy cá nhân của tôi. Nó hoạt động đủ tốt và tôi không phải thay đổi, nhưng nếu tôi có thể thấy một số lợi ích của việc sử dụng DVCS, thì tôi có thể thử.

Tuy nhiên, nếu không có điểm hay khác biệt khi sử dụng nó mà không có người khác, thì tôi sẽ không bận tâm.

Vì vậy, một lần nữa, tôi hỏi, có bất kỳ lợi ích nào khi sử dụng DVCS khi bạn là nhà phát triển duy nhất không?


1
Xem bài tương tự trên stackoverflow: stackoverflow.com/questions/179161/ trên . Tất cả mọi thứ bạn cần biết được tóm tắt độc đáo ở đó.
ysolik

Vì vậy, câu hỏi của tôi đã đóng như một bản sao chính xác như câu hỏi này. Thật không may câu hỏi này không trả lời của tôi. Các bạn có đẩy và rút từ chủ khi bạn là nhà phát triển solo hay bạn phân nhánh và hợp nhất? Tôi chỉ đang cố gắng xem cách sử dụng DVCS đúng cách là gì khi bạn độc thân
Chase Florell

1
sao lưu về cơ bản chỉ là một bản sao khác. Điều đó có thể rất quan trọng một ngày nào đó. Ngoài ra công cụ git là lightyears trước svn.

Bạn có bao giờ làm việc trên máy tính xách tay, cách xa máy chủ của bạn không?
JBRWilkinson

Câu trả lời:


19

Vâng! Tôi nghĩ lợi ích lớn nhất là sự hỗ trợ hợp nhất + phân nhánh tốt hơn được cung cấp bởi nhiều DVCS. Sự phân nhánh và sáp nhập là một nỗi đau ở mông trong SVN; đủ khó chịu khi không tạo ra các nhánh nhỏ, tồn tại trong thời gian ngắn để bổ sung tính năng nhanh, sửa lỗi hoặc thử nghiệm, nhưng việc hợp nhất cũng gây khó chịu đến mức tạo ra các nhánh tồn tại lâu. Mặt khác, phân nhánh và hợp nhất là một cách dễ dàng trong Git, đến mức tôi tạo ra một nhánh (cục bộ) cho gần như mọi sửa lỗi hoặc tính năng tôi làm việc.

Tôi nghĩ rằng các công cụ được cung cấp bởi Git để trực quan hóa repos, ghi nhật ký, v.v., cũng tốt hơn nhiều so với SVN (mặc dù đó là một điều Git hơn là cụ thể đối với DVCS).

Một DVCS cũng không yêu cầu một máy chủ trung tâm; khi sử dụng SVN làm nhà phát triển, bạn phải tạo một repo cục bộ để tham gia, đây không phải là một yêu cầu với Git, vì mỗi repo đều chứa toàn bộ lịch sử. Như một hệ quả tất yếu, lưu trữ một repo chỉ là vấn đề nén dự án của bạn - không có "cơ sở dữ liệu trung tâm" để sao lưu.

Tôi đã bắt đầu sử dụng Git gần bốn năm trước, sau khi sử dụng SVN một thời gian và tôi không nhìn lại.


Ý kiến ​​của các ý kiến: lập trình
viên.stackexchange.com / questions / 940 / từ

4
Có quan điểm cho rằng các DVCS không làm cho việc hợp nhất trở nên dễ dàng hơn, nhưng người dùng DVCS được thực hành nhiều hơn khi thực hiện hợp nhất. Điều này mang lại sự xuất hiện chủ quan của việc sáp nhập trở nên dễ dàng hơn. Tất nhiên đó là quan điểm chủ quan quan trọng.
Richard

3
DVCS không hoàn toàn bằng git
Murph

6
@Richard Nhưng đó là sai, các công cụ tập trung có xu hướng có một lịch sử tuyến tính không hỗ trợ kết hợp phức tạp tốt.
thay thế

2
@Murph: Điều này đúng, nhưng tôi sử dụng Git, vì vậy tôi đã sử dụng nó trong ví dụ của mình.
mipadi

7

Tôi sử dụng DVCS rất nhiều cho những thứ cá nhân của riêng tôi. (Tôi là một trong số những người ở $ HOME in git .) Có một số lợi thế:

  • Nó làm cho việc nhân rộng giữa máy tính xách tay của tôi với máy tính để bàn và máy tính trong phòng thí nghiệm thực sự dễ dàng. Mặc dù điều này cũng đúng với SVN ...
  • Tôi có thể cam kết trên máy tính xách tay ngay cả khi tôi không truy cập internet.
  • Sao lưu đơn giản như một git pull.
  • Tôi có thể sử dụng git citoolđể chia nhỏ nhiều thay đổi thành các cam kết có kích thước logic, ngay cả khi tôi đã thực hiện nhiều thay đổi không liên quan trước khi quyết định cam kết. Tôi không biết về một công cụ để làm điều này trong Subversion.
  • Khi tôi phải vá một dự án nguồn mở, việc sắp xếp mọi thứ được tổ chức sẽ dễ dàng hơn bằng cách tạo một kho git mới trong thư mục dự án hơn là tạo một bản sao thứ hai của bất kỳ cây nguồn nào tôi đang vá. (Bạn không thể thực hiện việc này một cách dễ dàng với Subversion vì bạn cần một kho lưu trữ riêng ở một nơi khác trên đĩa cứng của bạn.)
  • Tôi sử dụng các tính năng phân nhánh dễ dàng để kiểm tra các phiên bản tôi nhận được từ người khác. Ví dụ: khi tôi chỉnh sửa tài liệu hội nghị với cố vấn của mình, mặc dù anh ta không có quyền truy cập vào kho lưu trữ, tôi có thể gửi cho anh ta một bản sao của bài báo và kiểm tra các bản sửa đổi của anh ta trong một chi nhánh dựa trên phiên bản mà tôi đã gửi anh ta, và sau đó sử dụng git mergeđể hợp nhất các phiên bản của anh ta với bất cứ điều gì tôi đã làm trong thời gian đó.

Git khiến tôi quen với việc suy nghĩ về tất cả những thay đổi của mình trong các khối logic, nhiều hơn nhiều so với Subversion từng làm.


(hoặc git lấy gương)

5

Mẹ tôi tắt modem khi quá muộn để ngủ. DVCS cho phép tôi tiếp tục làm việc với VCS sau khi modem bị tắt.


1
Tôi sẽ gọi nó là "có thể làm việc từ máy bay" hoặc "có thể hoạt động khi bitbucket.com ngừng hoạt động" nhưng +1 để bao quát trường hợp ngoại tuyến.
Wyatt Barnett

Ngoài ra những nơi ngoài trời không có mạng 3G.
xếp hàng

3

Chà, câu trả lời mặc định sẽ là, "Nếu (bất cứ điều gì bạn đang sử dụng bây giờ) làm việc cho bạn, tại sao bạn lại thay đổi?".

Nhưng, vâng, ngay cả khi không có lý do cho sự thay đổi, tôi thấy việc sử dụng DVCS có phần dễ dàng hơn so với "các mô hình cũ". Sau đây là về Mercurial , nơi tôi sử dụng nhiều nhất, vì vậy số dặm của bạn có thể thay đổi, tùy thuộc vào hệ thống bạn sẽ sử dụng.

  • thực sự dễ sử dụng - tôi đã tìm ra tất cả các lệnh tôi cần trong một giờ hoặc lâu hơn
  • mọi thứ đều cục bộ (bạn không cần máy chủ từ xa để trực tuyến)
  • phân nhánh / hợp nhất rất dễ dàng - bạn thậm chí không nghĩ về những điều đó nữa
  • dễ dàng nhân bản (cũng là một kiểu phân nhánh) - và nói chung, giao diện thân thiện với người dùng hơn nhiều (tôi thấy nó thú vị hơn git trên windows; cũng có một số khái niệm đơn giản hơn, do đó không cần phải suy nghĩ về phía tôi, do đó dẫn đến ít đấu tranh với VS và thực hiện nhiều công việc hơn)
  • hoạt động tốt với svn

Nhảy qua một đoạn giới thiệu về Mercurial và một blog (màu sắc đẹp ;-) với những lời khuyên hữu ích .


Hmm, CVS đã từng làm việc cho chúng tôi, nhưng không nơi nào gần cũng như lật đổ khi chúng tôi chuyển đến nó. Đồ chơi mới mang đến cho bạn những khả năng mới - vì vậy chính xác là lý do này. Tôi đang xem liệu Mercurial có thể là một lựa chọn tốt hơn không (đặc biệt là khi tôi sử dụng FogBugz) và cũng là tiềm năng của tính chính xác ...
Murph

3
Chuyển từ SVN sang Mercurial là một sự mặc khải đối với tôi. Nó được lấy cảm hứng từ hginit.com tuyệt vời của Joel và tôi không bao giờ nhìn lại.
Adam Crossland
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.