Làm cách nào để thiết lập hệ thống kiểm soát mã nguồn cho chính mình?


23

Tôi lập trình trên máy tính để bàn trong văn phòng của mình, nhưng đôi khi ở nhà trong một phòng khác trên máy tính xách tay của tôi và thậm chí xa nhà. Những gì tôi cần là một hệ thống tự động hoặc theo yêu cầu đồng bộ hóa công việc của tôi từ người này sang người khác, khi cần.

Tôi không có một thiết lập mạng gia đình, và mặc dù tôi đoán rằng tôi có thể làm điều đó, có lẽ đó là một câu hỏi cho một bảng khác. Tôi đã nghĩ về một số loại hệ thống sẽ giữ mã nguồn trên đám mây, nhưng tôi không biết đủ về điều này để bắt đầu. Tôi cần một cách miễn phí hoặc rẻ tiền để làm điều này.

Tôi làm việc trong .NET (thực tế là Windows Phone 7).


1
sử dụng dropbox, chỉ cần cài đặt nó trên cả hai máy và được thực hiện với nó. Nó miễn phí (tối đa 2GB). Đối với kiểm soát nguồn tình huống của bạn là trên đầu (IMHO).
Đêm tối

26
Kiểm soát nguồn không bao giờ là trên hết (IMHO)!
Mongus Pong

4
Phải mất <15 phút (tùy thuộc vào băng thông tải xuống) để cài đặt và tải Git lên và chạy.
Mongus Pong

2
phải mất <3 phút (tùy thuộc vào băng thông tải xuống) để cài đặt và tải dropbox lên và chạy.
Đêm tối

4
DropBox là một gợi ý khủng khiếp! Nó không phải là một hệ thống kiểm soát phiên bản phù hợp, nó là để chia sẻ dữ liệu. Nó có thói quen rất khó chịu khi tải lên và tải xuống các thay đổi mỗi khi bạn lưu tệp và đồng bộ hóa với tất cả các máy khách khác trong thời gian thực , nó hoàn toàn làm hỏng máy của bạn khi thực hiện tất cả lưu lượng truy cập mạng không cần thiết này, đặc biệt nếu bạn đang sử dụng thứ gì đó tạo ra các tạo phẩm. trong cùng thư mục trong DropBox. Tìm hiểu và sử dụng Git hoặc DVCS tương đương.

Câu trả lời:


39

Cách dễ nhất là sử dụng một trong các hệ thống trực tuyến. Thanh toán GitHub hoặc BitBucket . Để biết thêm thông tin về Git hoặc Mercurial, hãy xem Git ReferenceHg init , tương ứng.


Có thể, nếu tất cả các máy có kết nối internet, nhưng có những trường hợp sử dụng khác. Ví dụ: tôi giữ một số kho lưu trữ lật đổ trên thanh flash USB và một số kho lớn hơn (không phải mã nguồn - ảnh và mọi thứ) trên ổ cứng ngoài. Khi tôi cảm thấy hạnh phúc hơn với quá trình chuyển đổi, tôi cũng có khả năng có các kho lưu trữ Mercurial trên các ổ flash USB. Một lý do - tôi vẫn sử dụng Windows XP cho nhiều thứ, nhưng trong mọi trường hợp tôi sẽ không cho phép nó (máy tính xách tay hoặc máy tính để bàn) trên internet.
Steve314

21
Điều thú vị về các hệ thống kiểm soát phiên bản phân tán như Git và Mercurial là bạn có thể làm việc với repo cục bộ và sau đó đồng bộ hóa với một số máy chủ trung tâm bất cứ khi nào bạn có tiện ích kết nối Net. Âm thanh như giải pháp lý tưởng cho OP.
Michelle Tilley

@Brandon - cũng hoạt động cho một repo chính trên ổ đĩa ngoài, khi nó được kết nối mọi lúc là một nỗi đau.
Steve314

2
Hãy nhớ rằng, BitBucket có các kho riêng tư miễn phí (không giống như GitHub), điều này có thể làm cho nó trở thành một lựa chọn tốt hơn cho OP.
Kevin Yap

Lý do tôi không khuyên bạn nên chạy nó cục bộ là vì anh ta nghe có vẻ không thoải mái với điều đó, và anh ta nói rằng anh ta cần truy cập từ xa vào nó. Nhưng rõ ràng, chạy cục bộ và đẩy vào kho lưu trữ đám mây là cách tốt nhất / an toàn nhất để đi.
Peter Rowell

7

Bạn có thể sử dụng DVCS như Git hoặc Mercurial có thể tạo kho lưu trữ cục bộ, sau đó cài đặt Dropbox và đặt thư mục dự án của bạn (tất nhiên bao gồm cả thư mục kho lưu trữ) vào thư mục dropbox.

Dropbox sẽ xử lý đồng bộ hóa và nó có thể xử lý tình huống ngoại tuyến miễn là bạn chỉ sửa đổi ở một nơi giữa đồng bộ hóa.

BTW Dropbox sẽ không hiển thị các tệp của bạn ra công khai theo mặc định, nhưng bạn vẫn có thể hiển thị chúng nếu muốn.

CHỈNH SỬA

Liên quan đến tính toàn vẹn của kho lưu trữ trong trường hợp Dropbox bỏ lỡ đồng bộ hóa một hoặc hai tệp, bạn có thể tạo một kho lưu trữ chính bên ngoài thư mục Dropbox trong PC chính của mình và đẩy vào đó. Vì vậy, nếu repo cục bộ trong thư mục Dropbox bị hỏng, chỉ cần khôi phục từ PC chính. Nhưng tôi chưa có kinh nghiệm tham nhũng kho lưu trữ.



Chủ yếu là những gì tôi làm. Kho lưu trữ Mercurial trên máy tính để bàn và máy tính xách tay của tôi, kho lưu trữ chính trong Dropbox, nơi tôi đẩy và kéo từ đó.
David Thornley

@David Tôi làm điều đó ngược lại, repo chính trong PC, hoạt động repo trong Dropbox, bao gồm các tệp mã nguồn mà tôi đang làm việc.
Endy Tjahjono

@Endy Tjahjono: Nghe từ bình luận của bạn giống như bạn làm việc trên một máy tính. Thỉnh thoảng tôi sử dụng máy tính để bàn và máy tính xách tay của mình, vì vậy nó không thực sự hoạt động để có kho lưu trữ chính của tôi trên một trong số chúng.
David Thornley

@David lỗi của tôi, tôi nên nói repo 'sao lưu' trong PC chính của tôi. Repo 'chính' của tôi là repo công việc trong thư mục dropbox. Tôi chỉ thỉnh thoảng đẩy vào repo sao lưu cho mục đích sao lưu.
Endy Tjahjono

6

Dưới đây là một số hướng dẫn nhanh về cách thiết lập VCS phân tán. Lợi ích của việc sử dụng git hoặc đồng bóng là bạn không cần thiết lập máy chủ để làm cho tất cả hoạt động vì kho lưu trữ chỉ là một hệ thống tệp. Bạn có kho lưu trữ cục bộ trong máy tính bên cạnh mã của bạn (trong git có một .gitthư mục và trong đồng bóng có một .hgthư mục trong đường dẫn dự án).

Sử dụng git

Bước 1: Tải xuống và cài đặt git. Đối với các cửa sổ, bạn có thể muốn sử dụng TortoiseGit . Một số ghi chú thiết lập ở đây .

Bước 2: Thực hiện theo sách cộng đồng git để khởi tạo kho lưu trữ cục bộ cho dự án của bạn và cam kết với kho lưu trữ.

Bước 3: Để đưa mọi thứ lên "đám mây" đó là github, bạn có thể làm theo hướng dẫn này .

Sử dụng Mercurial

Bước 1: Tải xuống và cài đặt mercurial. Đối với các cửa sổ, bạn có thể muốn sử dụng TortoiseHg .

Bước 2: Làm theo hướng dẫn Bắt đầu nhanh để tạo kho lưu trữ cho dự án của bạn và cam kết với kho lưu trữ.

Bước 3 Để đưa mọi thứ lên "đám mây" đó là bitbucket, bạn có thể làm theo hướng dẫn này .

Nếu bạn đang làm việc trên .NET, bạn có thể muốn sử dụng Mercurial vì (loại) hỗ trợ tốt hơn trong Windows tại thời điểm viết.


2

Như đã có @ peter-rowell và những người khác đã nói một cách chính xác, Cách dễ nhất là sử dụng bất kỳ một DVCS nào như Git và các hệ thống trực tuyến tương ứng như Github hoặc Unfuddle. Cá nhân tôi sử dụng Git và Unfuddle.

Vì, bạn đã đề cập rằng việc kết nối Internet tại nhà cũng không phải là vấn đề đối với bạn, có IDE trực tuyến mới này chạy trên trình duyệt và sống trên đám mây. Tôi không biết bất cứ thứ gì có sẵn như thế này trước đây, nhưng điều này trông rất thú vị và tuyệt vời. Mặc dù, tôi đã không sử dụng nó nhiều, nhưng nó rất tuyệt.


Unfuddle là một dịch vụ tuyệt vời. Về cơ bản nó chỉ là một bản sao của redmine với một số điều chỉnh tốt đẹp.
Keyo

2

Hầu như bất kỳ DVCS sẽ giúp.

Phổ biến nhất là Git, đồng bóng, và một vài người khác; nhưng tôi thực sự thích Fossil . Đó là một (nhỏ!) Có thể thực thi, dễ dàng di động, khép kín, đa nền tảng và bao gồm wiki, GUI dựa trên web, hệ thống bán vé, trình xử lý tài liệu, v.v.


1
Bitbucket là một dịch vụ cung cấp dịch vụ lưu trữ Mercurial.
Tamás Szelei

cảm ơn. tôi biết rằng; nhưng những cái tên bị rối tung trong tâm trí tôi
Javier

1

Tùy chọn tôi muốn đề xuất sẽ là Kiln . Nó được tạo ra bởi cùng một người chính xác tạo ra FogBugz và Stack Exchange. Vì vậy, nó sẽ khá tốt, nó cũng miễn phí cho tối đa 3 người dùng mà tôi tin. Thang đo giống như FogBugz và cả hai có thể được tích hợp để bạn có thể theo dõi các lỗi và tính năng.

Giống như Joel đã nói trong một trong những bài đăng trên blog của mình, theo dõi lỗi và kiểm soát nguồn luôn là một điểm cộng, ngay cả với một nhà phát triển đơn độc.


Chà, nó có thể miễn phí cho 3 người dùng, nhưng giờ là $ 25 mỗi người dùng mỗi tháng. Tuy nhiên, có vẻ như một produect mát mẻ.
Chuyên gia điện tử

1

Nếu quyền riêng tư của mã của bạn không phải là vấn đề thì Google Code có thể là một giải pháp khả thi. Nó chăm sóc phần lưu trữ và nó là miễn phí và khá dễ dàng để thiết lập. Nó hỗ trợ Subversion, Mercurial và Git, tất cả đều có máy khách Windows. Nó cũng tích hợp với Google ID để bạn có thể dễ dàng thêm người đóng góp cho dự án. Tôi lưu trữ các dự án sở thích của tôi ở đó bằng cách sử dụng Mercurial. Tôi đã cài đặt ứng dụng khách TortoiseHg trên cả máy tính ở nhà và nơi làm việc, vì vậy tôi có thể làm việc với các dự án của mình trong giờ nghỉ.


Tốt đẹp! Cảm ơn vì đã đề cập đến điều này - tôi chưa nghe nói về Google Code trước đây.
Chuyên gia điện tử

0

Nó phụ thuộc vào kiến ​​thức của bạn về việc thiết lập máy chủ là gì và thời gian bạn sẵn sàng đầu tư.

Cá nhân tôi đã thuê một máy chủ ảo nhỏ từ một hoster và cài đặt Máy chủ web Apache một kho lưu trữ Subversion tích hợp (hiện tôi đang chuyển đổi sang git). Thiết lập thực sự không nhiều và một khi nó hoạt động, bạn không còn phải lo lắng về nó nữa. Thiết lập này có lợi thế là bạn không chỉ có thể thiết lập kho lưu trữ kiểm soát phiên bản mà còn các loại nội dung khác mà bạn muốn truy cập mọi lúc mọi nơi (ví dụ tôi đã cài đặt WIKI và trình theo dõi vấn đề).

Nếu đó là quá nhiều chi phí cho bạn, bạn luôn có thể sử dụng các hệ thống trực tuyến đã được đề xuất như GitHub.


0

Đơn giản nhất có lẽ là đi với nhà cung cấp git, github có khả năng trả tiền cho một tài khoản riêng tư.

Nhưng đừng quên svn, nó đơn giản và dễ sử dụng. Bạn có thể cài đặt một máy chủ svn ở một nơi nào đó mà bạn có thể tiếp cận nó, có thể là tại nơi làm việc. (Và dự án như máy chủ Visual svn làm cho việc này thực sự dễ dàng trên windows.) Là một khách hàng, bạn có thể sử dụng plugin Visual Studio hoặc tortoisesvn.

Điều duy nhất bạn cần nhớ là bạn cần phải cam kết và cập nhật khi bạn chuyển đổi máy tính.


Tôi không nghĩ SVN là câu trả lời đúng ở đây. Tôi thấy việc cài đặt Mercurial lên dễ dàng hơn SVN và đó là một hệ thống tốt hơn SVN. SVN là vô dụng nếu không có kết nối trực tiếp đến kho lưu trữ trung tâm và OP có hai máy tính dường như không có liên kết trực tiếp.
David Thornley

Tôi không chắc chắn, svn dễ dàng hơn các lựa chọn thay thế phân tán. Nhưng vì anh ta không thể đến máy chủ mọi lúc, bạn phải bị kỷ luật khi bạn muốn phân nhánh. Nhưng một người đàn ông hiếm khi làm điều đó. Và nhu cầu cam kết là khi bạn thay đổi máy tính, vì vậy tôi đồng ý rằng nó không tối ưu. Nhưng nó là một thay thế. Tôi thực sự đã làm việc như thế này trước khi tôi bắt đầu sử dụng git. (Nhưng với git thì dễ bị nhầm hơn).
Johan

Giả định của tôi là anh ấy đang di chuyển máy tính xách tay khi đi làm, nếu không đây sẽ không phải là một thiết lập dễ dàng và David là chính xác.
Johan

Thời gian để thiết lập một git hoặc Hg repo ( git init), một vài giây. Với lật đổ, bạn cần một máy chủ trước, khó hơn rất nhiều so với việc chỉ chạy git/hg inittrong thư mục của bạn. Tôi thiếu kiên nhẫn và lười biếng và Git khuyến khích tôi sử dụng SCM bởi vì nó (hợp nhất, khởi tạo, cam kết) rất nhanh và không gây đau đớn.
Keyo

0

Tôi sử dụng Beanstalk . Nó đã làm việc rất tốt cho tôi như một máy chủ SVN cá nhân. Họ cũng có Git hosting nhưng tôi chưa thử. Họ có một tài khoản miễn phí để bắt đầu, và sau đó bạn có thể chuyển sang tài khoản trả phí nếu cần thiết.


-2

Dropbox

Tất cả các giải pháp khác là quá sức cho nhu cầu của bạn:

Chỉ cần cài đặt Dropbox trên cả hai máy tính.

Một điều khiển nguồn đầy đủ là tốt nhưng trong tình huống của bạn, IMHO không cần thiết .

Đây là con đường đơn giản dễ thực hiện nhất -> bạn chỉ cần kết thúc với các thư mục được đồng bộ hóa tự động trên nhiều máy tính như bạn muốn.


1
Bạn có thể sử dụng Git cùng với Dropbox. Xem stackoverflow.com/questions/1960799/
Mạnh

4
Không có gì quá đáng về việc sử dụng kiểm soát nguồn, đặc biệt là khi Git và HG rất dễ thiết lập. Tôi không nghĩ vấn đề là anh ấy là nhà phát triển duy nhất, nếu anh ấy viết mã sản xuất, anh ấy cần kiểm soát nguồn.
richeym

Có lẽ bạn đúng. Tôi chỉ nghĩ rằng đối với một nhà phát triển đơn thuần, nó không cần thiết và OTT, nhưng đó là quan điểm của tôi.
Đêm tối

git init, git add ., git commit -m "bla"Là về tất cả các bạn cần phải biết để thực hiện một số mã. Không khó và bạn có được một phần của tâm trí mà bạn có thể hoàn nguyên nó. Tất nhiên những lợi ích rất nhiều quan trọng hơn trong một đội bóng, nhưng tôi thích để có thể thiết lập lại trở lại thời điểm nào là quan trọng. Có thể phân nhánh và stash làm cho tôi năng suất cao hơn.
Keyo

Tôi nghe thấy những gì bạn nói, trong hộp thả đồng bộ hóa thời gian thực của nó, nó có cuộn lại cơ bản. Vâng, nó không là gì so với kiểm soát nguồn hoàn toàn, nhưng sau đó nó khá "cháy & quên"
Darknight
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.