2009-02-19 18 views
18

Giả sử rằng tôi đang bắt đầu một dự án web mới ở nhà bằng cách sử dụng Visual Studio, hệ thống điều khiển phiên bản nào, viz. Git hoặc Subversion sẽ tốt hơn để sử dụng? Cái nào sẽ có độ phức tạp thiết lập ít nhất?Git hoặc Subversion?

+1

Như những người khác đã gợi ý, bạn có thể muốn có một cái nhìn tại Mercurial quá. Nó trực quan để sử dụng như SVN và mang lại cho bạn những lợi ích của DVCS. Nó cũng hoạt động khá tốt với Windows. –

+0

Tích hợp Visual Studion có phải là yêu cầu không? –

+0

Tích hợp phòng thu trực quan không phải là một yêu cầu mà là một điều thú vị. – sduplooy

Trả lời

4

Git là thiết lập kiểm soát nguồn được phân phối và vì bạn là người dùng duy nhất tôi không thể tưởng tượng rằng bạn sẽ hưởng lợi nhiều từ các tính năng của nó. Subversion là (theo ý kiến ​​của tôi) dễ dàng hơn để thiết lập vì vậy tôi sẽ khuyên bạn nên đi với nó.

+0

Các khía cạnh bị ngắt kết nối của Git có thể khá hữu ích cho một nhà phát triển duy nhất. Tôi làm việc rất nhiều trên tàu mà không cần kết nối internet ... – Guillaume

+0

"Thiết lập" Git là dễ dàng hơn: "git init". Bang, kho lưu trữ và cây làm việc của bạn đã sẵn sàng để sử dụng. :) – Bombe

+1

Liệu anh ta có được lợi ích từ việc thiếu các tính năng git? –

3

Điều bạn quyết định sử dụng phụ thuộc rất nhiều vào nhu cầu của bạn hiện tại và tiếp tục. Git có một cộng đồng rất tốt đẹp được xây dựng một vòng nó với GitHub đó là rất tốt cho việc chia sẻ mã và các dự án. SVN là khá đơn giản để thiết lập và nhận được đi, nhưng trong các nhóm lớn Git có nó đánh bại tay xuống với nó là phân nhánh và sáp nhập. Điều này là lý tưởng trong trường hợp bạn có nhiều người làm việc trên cùng một dự án, hoặc trong một thiết lập văn phòng hoặc một ý nghĩa của một nơi mà đội được trải ra.

Nếu tất cả những gì bạn cần là một cái gì đó nhanh chóng và đơn giản để thiết lập và bắt đầu để bạn có thể bắt đầu dự án của mình, SVN sẽ ổn. SVN cũng được tích hợp vào nhiều trình soạn thảo và IDE cũng như nhiều hệ thống theo dõi lỗi và tích hợp liên tục.

Nếu bạn dự định tổ chức một nhóm, hoặc đã làm, Git đáng xem xét cho thiết lập phân nhánh và hợp nhất của nó. Git tuy nhiên, phần lớn vẫn còn trẻ, không có nhiều hỗ trợ sẵn có

39

Vì điều này là dành cho cá nhân của bạn chơi xung quanh, câu hỏi của tôi rất đơn giản: Bạn có biết Subversion hoặc Git chưa?

  • Nếu bạn biết SVN - sử dụng Git.
  • Nếu bạn biết Git - hãy sử dụng SVN.

Nếu bạn không biết - hãy sử dụng SVN. Đó là một giới thiệu tốt hơn.

+0

câu trả lời hay nhất cho đến thời điểm này, +1 –

+3

Hoặc chỉ sử dụng darcs, mercurial hoặc bazaar. Subversion và git đã quá phổ biến và do đó un1337, và nếu bạn sử dụng chúng, bạn cũng sẽ trở thành un1337. – yfeldblum

+1

Tôi cảm thấy xấu hổ lên đại diện 7,777, nhưng tôi phải. +1 –

10

Phiên bản phụ có nhiều tính năng thân thiện với Windows hơn và cũng hữu ích hơn cho nhà phát triển solo.

Một khả năng khác là Perforce, hơi kém thân thiện với Windows, nhưng đầy đủ tính năng và khá dễ sử dụng, chưa kể đến miễn phí cho tối đa hai người dùng.

+0

Nếu bạn muốn một cửa sổ phân phối thân thiện hơn một chút VCS, tôi khuyên bạn nên Mercurial. Các khách hàng vỏ rùa cho rằng là khá tốt, và nó hoạt động tốt, đủ cho hầu hết các trường hợp. –

+0

bazaar là một DVS hỗ trợ windows tốt hơn. Không Cygwin, không có Msys, không git. – paxos1977

12

Tôi muốn đi với Git. Nó không phải là xấu nhận được lên đến tốc độ trên những điều cơ bản (có bây giờ là một tấn tài nguyên tốt, bao gồm learn.github.com) và nó sẽ trả hết trong spades. Và tôi đã sử dụng nó trên Vista mà không có probs.

+0

Lợi ích của việc sử dụng Git cho dự án nhà là gì? – Hortitude

+0

Về cơ bản, nó vượt ra khỏi con đường của bạn, tạo ra một phiên bản mà 'chỉ xảy ra' thay vì cái gì đó bạn phải làm việc. Ngay cả trên một dự án nhà, bạn sẽ nhanh nhẹn hơn về phân nhánh và quy trình làm việc tổng thể. Thêm vào đó, nếu dự án mở rộng, bạn có thể dễ dàng thu hút những người khác tham gia. – fig

+1

Ngoài ra, git không đặt thư mục .svn trên toàn bộ địa điểm. giữ cho cơ sở mã sạch hơn. Và, nghiêm túc, nó là dễ dàng hơn để chi nhánh, hợp nhất, bí quyết bí. – Abizern

4

Nếu bạn đang làm việc một mình và muốn một số loại điều khiển phiên bản dễ sử dụng, sau đó sử dụng Subversion.It hoạt động tốt trên Windows, thiết lập kho lưu trữ là một cú nhấp chuột trong một sản phẩm nào với Tortoise SVN. Ankh SVN cung cấp một tích hợp rất tốt với Visual Studio - gần như ngang bằng với TFS cung cấp cho bạn sử dụng VS 2005 hoặc mới hơn.

Mặt khác, Git có triển vọng hơn nhiều so với SVN. Tôi sẽ kiểm tra nó trong năm nay, nhưng các công cụ của bên thứ ba vẫn chưa ngang hàng.

-2

Nếu bạn dự định thực hiện dự án của mình trên thanh USB, hãy sử dụng Subversion. Windows XP nó thực sự, thực sự, thực sự xấu trong bộ nhớ đệm rất nhiều tập tin nhỏ trên một thanh USB. Git viết nhiều tệp nhỏ cho các hoạt động cam kết và mất nhiều thời gian trên Windows.

[EDIT] Sự cố với Windows XP và tệp trên thanh USB là bộ nhớ đệm (hoặc thiếu bộ nhớ đệm).Để tránh mất dữ liệu, XP sẽ luôn ghi các tập tin đồng bộ trên một thanh USB (vì vậy mọi ghi sẽ chỉ trở lại sau FS đã báo cáo rằng tất cả các khối đã được ghi vào thanh). Thêm vào thực tế là các thanh USB chậm khi xử lý các tệp nhỏ (chúng có rất nhiều chi phí khởi tạo quản lý mức độ hao mòn) dẫn đến hiệu suất rất kém đối với bất kỳ loại ứng dụng nào viết nhiều tệp nhỏ.

[EDIT2] Nếu bạn đặt thanh toán SVN trên thanh USB, bạn cũng sẽ có rất nhiều tệp nhỏ (đặc biệt là trong thư mục .svn). Vì vậy, giải pháp trong trường hợp này là đặt kho lưu trữ Subversion ("máy chủ") trên ổ USB. Kho lưu trữ chỉ sử dụng một loạt các tệp lớn (nếu bạn sử dụng tùy chọn cơ sở dữ liệu thay vì tệp dựa trên một: svnadmin create --fs-type bdb). Điều này tránh "nhiều vấn đề tệp nhỏ". Không có cách nào để đạt được điều tương tự với các phiên bản hiện tại của Git.

+1

Hãy cẩn thận để sao lưu bất kỳ điều này? –

+0

Bạn muốn biết điều gì? –

+0

Một vấn đề không ở đây: ZIP trên bay hoạt động kỳ diệu chống lại hiện tượng này. Hơn nữa, nếu bạn đã sao lưu một thư mục làm việc Subversion, bạn sẽ chạy trong cùng một loại vấn đề, vì thư mục .svn giữ một bản sao của mỗi tệp. –

1

Hãy đi-ở của tôi về câu hỏi của bạn và hỏi:

  1. Liệu Git làm việc trên Windows?
  2. Có nội dung nào tương đương với Rùa không? (Nếu không, tôi không thấy nó có thể cạnh tranh với SVN như thế nào về tính dễ sử dụng)

Lưu ý: Nếu bạn thực sự là một dự án nhà một người, bạn không thực sự cần bất kỳ nguồn nào công cụ điều khiển. Chỉ cần đặt dự án của bạn vào thư mục DropBox và bạn đã hoàn tất (tự động cam kết, sửa đổi vô hạn, phục hồi). Trừ khi bạn thực sự nghĩ rằng bạn sẽ cần thẻ và các chi nhánh và các công cụ. Nhưng đối với các dự án nhà cá nhân ... làm ya?

+0

1 - có, 2 - chưa, và để trả lời câu hỏi cuối cùng của bạn - vâng. –

+0

DropBox là tuyệt vời, nhưng IMO tính năng sửa đổi của nó không phải là khá lên đến nhiệm vụ quản lý toàn bộ dự án. Nếu bạn cần hoàn nguyên toàn bộ thư mục về trạng thái trước đó thì không có cách nào dễ dàng để thực hiện nó. (Tôi chỉ giữ một bản sao SVN làm việc trong thư mục DropBox của tôi, vì vậy tôi có được tốt nhất của cả hai thế giới. :)) –

+0

TortoiseSVN là tốt hơn đáng kể trên XP hơn Vista, kể từ XP nó tích hợp tốt hơn với Windows Explorer. Đối với những gì nó làm trên Vista, tôi muốn được gần như cũng như tắt bằng cách sử dụng SVN trực tiếp từ dòng lệnh. –

4

Thay vào đó, tôi sẽ sử dụng số Mercurial. Nó được cho là tương tự như Git (mà tôi không bao giờ có thể chạy vì vấn đề Windows) và thực sự dễ cài đặt trong Windows & rất tốt cho các hệ thống điều khiển phiên bản "cá nhân".

+0

+1 cho việc này. Mercurial cho phép sự linh hoạt của DVCS với một subversion rất đơn giản và trực quan như giao diện.Một người quen với SVN có thể rất nhanh chóng cảm thấy thoải mái với HG và ngược lại. Thời gian duy nhất tôi sử dụng git là khi tôi cần khả năng phân nhánh của nó, cao hơn nhiều so với HG của –

2

Nếu bạn muốn tích hợp Visual Studio không có câu hỏi. Chỉ Subversion có tích hợp Visual Studio (AnkhSVN, VisualSVN và một số tập lệnh cho phép truy cập vào TortoiseSVN).

Một trong những lý do quan trọng nhất mà Subversion có số lượng lớn các công cụ được viết cho nó là nó được thiết kế như một thư viện ổn định để nhiều khách hàng sử dụng.

Rất khó có khả năng Git có cùng mức tích hợp trong Visual Studio trước khi hỗ trợ git khả dụng dưới dạng thư viện có thể sử dụng lại. (Có kế hoạch cho một libgit2 có thể biến điều này thành hiện thực).

+0

Tôi sử dụng [gitextensions] (http://code.google.com/p/gitextensions/) trong đó có một studio trực quan bổ trợ và cá nhân tôi thấy nó tốt hơn nhiều so với SVN add-ins. – Lukazoid

0

Với SVN bạn sẽ phải thiết lập một máy chủ, tạo ra một kho lưu trữ ở đó, kiểm tra (trống) kho, thêm các tập tin của bạn, và sau đó cam kết .

Với Git, tất cả những gì bạn cần là git init trong thư mục gốc của dự án. Sau đó, bạn có thể thêm và cam kết các tệp khi bạn thấy phù hợp.

Không thực sự có bất kỳ ý tưởng nào trong việc thiết lập máy chủ Subversion, vì bạn là người duy nhất làm việc trên nguồn. Trái ngược với những gì nhiều người nghĩ, các dự án solo là một kết hợp hoàn hảo cho các công cụ kiểm soát phiên bản được phân phối. Nó cũng rất dễ dàng để phát triển dự án của bạn sau này.

+0

Một nhà phát triển không cần máy chủ với svn: http://tortoisesvn.tigris.org/faq.html#noserver – user282727

0

Theo kinh nghiệm của tôi, Subversion dễ dàng hơn để "bẻ khóa", nhưng Git thì nhanh hơn và dễ dàng hơn để tham gia vào các phương pháp hay nhất về phát triển phần mềm.Là một cựu người dùng CVS, Subversion có ý nghĩa ngay lập tức với tôi khi tôi bắt đầu sử dụng nó. Git mất một số nghiên cứu và tôi vẫn phải tham khảo các hướng dẫn theo thời gian, nhưng tôi thích cách dễ dàng là chi nhánh và hợp nhất mã khi tôi đã có để duy trì một quá trình phát hành.

Nếu bạn đã quen thuộc với CVS và chỉ cần một cái gì đó để giữ lịch sử và sự khác biệt của bạn, Subversion sẽ dễ dàng hơn để bắt đầu. Nếu bạn chưa quen với việc kiểm soát phiên bản, thủy triều đang dịch chuyển về phía DVCS nói chung và Git nói riêng, vì vậy bạn có thể nhận được nhiều tiền hơn trong số đó nói chung.

Tôi khuyên bạn nên xem xét nhà cung cấp được lưu trữ, do đó bạn không phải lo lắng về việc thiết lập máy chủ Subversion hoặc vì vậy bạn có thể có vị trí sao lưu cho dữ liệu Git của mình. Bạn có thể Google cho "subversion hosting" hoặc "git hosting" để xem các nhà cung cấp hàng đầu trong không gian.

1

Git ................................ (các dấu chấm này có bởi vì SO không chấp nhận 3 chữ cái được trả lời).

1

Một câu trả lời tuyệt vời cho câu hỏi này đã được recenting viết về Jack Repenning đây:

  • Nếu bạn có yêu cầu hấp dẫn cho một duy nhất, nhất định, chủ bản sao công việc của bạn, sử dụng Subversion. Bạn có thể làm điều này với Git, miễn là không có phiếu chống trượt. Nhưng bạn không thể làm bất cứ điều gì khác với Subversion (slip-up hoặc không), và "yêu cầu hấp dẫn" như Sarbanes-Oxley là hạnh phúc hơn với đảm bảo hơn khả năng.

  • Nếu bạn dự định duy trì các dòng song song, được chia sẻ phần lớn nhưng vĩnh viễn khác nhau của cùng một sản phẩm, hãy sử dụng Git. Một ví dụ phổ biến: có lẽ bạn có một sản phẩm lớn mà bạn tùy chỉnh cho từng khách hàng. Các tùy chỉnh là vĩnh viễn và thường không được chia sẻ giữa các dòng mã, nhưng hầu hết mã là phổ biến cho tất cả. Git được thiết kế cho chỉ trường hợp này (về Git, tùy chỉnh địa phương để các lõi chung, và thỉnh thoảng tính năng hoặc lỗi-sửa chữa đóng góp trở lại lên cây)

  • Cả những? Hãy lựa chọn, bạn nên sử dụng một trong hai công cụ. *

Full Blog Post ở đây: http://blog.codesion.com/post/15692788883/subversion-or-git-decisions-decisions

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