Chúng tôi có thể thiết lập máy chủ svn trên máy tính cục bộ mà không cần truy cập mạng không?


25

Tôi muốn thiết lập kho lưu trữ SVN trên máy tính của mình mà không cần truy cập mạng. Tôi đang làm việc với một mã mà không có bất kỳ cộng tác viên nào, vì vậy tôi không muốn nó được công khai.

Tôi đọc bài đăng này , nhưng nó gợi ý sử dụng các dịch vụ kho lưu trữ SVN trực tuyến cung cấp các kho lưu trữ miễn phí. Trong trường hợp đó, mã của tôi sẽ được cung cấp công khai (như được bao gồm trong các điều khoản của gói miễn phí).

Vì vậy, tôi đã tự hỏi nếu tôi có thể thiết lập một máy chủ cục bộ trên máy Windows XP mà chỉ tôi truy cập ngay cả khi tôi không có kết nối internet?


15
Tôi thực sự khuyên bạn nên sử dụng git trên một cái gì đó như svn cho quy trình công việc bạn đã mô tả
Daenyth

7
Bạn chắc chắn có thể cài đặt svn cục bộ và sử dụng nó. Không có vấn đề với điều đó. visualsvn.com/server/d
Alex

8
Hoặc Mercurial; "hg init" tạo một kho lưu trữ trong thư mục bạn đang ở ... không thể dễ dàng hơn thế?
perp

8
Tôi không thấy gì trong câu hỏi để đề xuất DVCS là cần thiết. Subversion là phù hợp hoàn hảo cho các kịch bản được mô tả. Chúng ta đừng làm mờ câu trả lời của chúng tôi bằng các khuyến nghị cho các lựa chọn thay thế khi không có lý do kỹ thuật để làm như vậy.
RichardM

3
@RichardM: Không có gì sai khi đề xuất một giải pháp khác nếu nó dễ cài đặt hơn và có nhiều bằng chứng trong tương lai. Một DVCS cung cấp nhiều lợi ích khác nếu OP muốn cộng tác với người khác một ngày nào đó.
marco-fiset

Câu trả lời:


31

Cách dễ nhất để thiết lập máy chủ cục bộ là sử dụng svnserve :

Subversion bao gồm Svnserve - một máy chủ độc lập nhẹ sử dụng giao thức tùy chỉnh qua kết nối TCP / IP thông thường. Đó là lý tưởng cho các cài đặt nhỏ hơn hoặc khi không thể sử dụng máy chủ Apache đầy đủ.

Bạn thực sự không cần một máy chủ lật đổ, nếu tất cả những gì bạn muốn làm là truy cập vào kho lưu trữ cục bộ, vì bạn có thể truy cập vào kho lưu trữ lật đổ thông qua một URL tệp, như được mô tả trong câu trả lời này :

Bạn có thể truy cập kho lưu trữ bằng tệp: // giao thức, do đó bạn sẽ chỉ cần cài đặt Rùa SVN và không có gì khác. Xem câu hỏi này trong FAQ: Có thể sử dụng TortoiseSVN mà không cần máy chủ không?

Bạn thậm chí có thể có kho lưu trữ trong thiết bị usb để bạn có thể mang theo nguồn và làm việc từ các máy tính khác.

Nếu bạn đang sử dụng TortoiseSVN , thì bạn có thể tìm thấy hướng dẫn tại Tạo Kho lưu trữ với TortoiseSVN :

  1. Mở cửa sổ thám hiểm

  2. Tạo một thư mục mới và đặt tên nó, ví dụ SVNRep repository

  3. Nhấp chuột phải vào thư mục vừa tạo và chọn TortoiseSVN → Tạo Kho lưu trữ tại đây ....

Ngay lập tức ở trên trang này cũng mô tả cách tạo một kho lưu trữ từ dòng lệnh .


Có nói rằng, tôi khuyên bạn nên xem Mercurial hoặc Git như một cách thay thế svn. Nếu bạn đã quen thuộc với TortoiseSvn thì bạn sẽ thấy TortoiseHgTortoiseGit là một quá trình chuyển đổi dễ dàng, cộng với nó mang lại cho bạn sự linh hoạt để làm việc theo cách phân tán sau này nếu bạn cần. Ví dụ, trước đây tôi đã sử dụng thẻ nhớ để chuyển các hgkho lưu trữ giữa các máy không có quyền truy cập mạng và khi bạn làm việc theo cách này, bạn sẽ có được một bản sao lưu miễn phí vào món hời.


Thật là một câu trả lời tuyệt vời!
Steve

9

Máy chủ đơn giản nhất (và nhanh nhất), mà bạn có thể sử dụng để làm việc với kho lưu trữ cục bộ, được nhúng vào mọi svn-client . Đây là máy chủ để truy cập bất kỳ kho lưu trữ nàobất kỳ số lượng kho lưu trữ nào , hiện có trên hệ thống tệp cục bộ, sử dụng tệp giao thức: ///. Nó không cung cấp bất kỳ phương thức ủy quyền hoặc xác thực nào, chỉ cấp quyền truy cập không giới hạn vào kho lưu trữ dưới sự kiểm soát, nhưng, từ phía khác, nó cho phép sử dụng và cung cấp tất cả các tính năng của hệ thống VCS mỗi lần.

Để sử dụng máy chủ này, bạn có trong bất kỳ thư mục trống nào ở bất kỳ vị trí nào, hãy gọi lệnh CLI svnadmin với các tham số và tiểu ban tương ứng (tôi không thể nhớ lại, có các chương trình quản trị trong gói CLI-client hay không và không thể kiểm tra xem - Tôi chưa cài đặt CLI svn-client, chỉ có TortoiseSVN, có các chương trình này trong trình cài đặt trong phiên bản 1.7) - Tôi hy vọng, bạn sẽ có thể tìm thấy nó.

svnadmin helpcho chúng tôi thấy tất cả các tiểu ban có sẵn, chúng tôi hiện đang quan tâm đến các tiểu ban create.

svnadmin help create cung cấp tất cả cần thiết cho chúng tôi chi tiết

create: usage: svnadmin create REPOS_PATH

Create a new, empty repository at REPOS_PATH.

Valid options:
...

Tại điểm bắt đầu cho repo đầu tiên, chúng ta có thể bỏ qua tất cả các tùy chọn tinh chỉnh và chỉ nhớ hình thức chính svnadmin create REPOS_PATH, ở đó REPOS_PATH là đường dẫn tuyệt đối hoặc tương đối đến thư mục trống, được lên kế hoạch cho repo. Bởi vì hầu hết người dùng Windows thông thường cho ứng dụng đa nền tảng có thể mọi người có thể bị nhầm lẫn, nên sử dụng ký hiệu (dấu gạch chéo hoặc dấu gạch chéo) trong đường dẫn (metoo), cách an toàn nhất là cdđịnh vị mà từ đó thư mục của chúng tôi có thể nhìn thấy mà không có đường dẫn dài - cha mẹ của thư mục repo trong tương lai hoặc chính thư mục đó. Đối với kế hoạch cho repo z:\Main trước svnadmin create

Z:
cd \Main

và cuối cùng,

svnadmin create .

Kết quả là chúng ta được tạo kho lưu trữ trống trong thư mục, được hiển thị trong Windows Explorer với biểu tượng đặc biệt là chỉ báo nội dung

RepoFolder

Bây giờ, mỗi khi cần kho lưu trữ này, chúng tôi sử dụng các lệnh SVN thông thường, có phần URL hoặc tham số có vẻ nhưfile:///Z:/Main

c:\>svn ls file:///Z:/Main
branches/
tags/
trunk/

(Tôi đã thêm cây kho lưu trữ tiêu chuẩn trong repo).

Hãy phân tích URL lạ này:

  • file:///, như đối với bất kỳ URL nào, có nghĩa là giao thức truy cập, trong trường hợp giao thức của chúng tôi là đặc biệt và có ba, không phải hai dấu gạch chéo
  • Z:/Main là đường dẫn đầy đủ để repo với ổ đĩa và đường dẫn bên trong ổ đĩa, có tất cả các dấu gạch chéo ngược Windows được thay thế bằng dấu gạch chéo "cổ điển"

Từ bất kỳ điểm nào khác, kho lưu trữ này không có bất kỳ sự khác biệt nào so với "Big Brother" với các máy chủ Subversion đặc biệt

RepoBrower cho tệp: /// repo


1
@Lazy Badger OP rõ ràng đã hỏi cách thiết lập máy chủ svn. Bạn nói với anh ta để tránh sử dụng bất kỳ máy chủ nào cả. Điều này tránh trả lời câu hỏi, như đã nêu.
thay thế

5
@mathepic - thực ra OP yêu cầu cách thiết lập kho lưu trữ SVN chứ không phải máy chủ - sự khác biệt rất lớn.
Murph

5

Hãy thử một câu trả lời đề xuất các giải pháp chung chung hơn là chi tiết cụ thể.

Trước hết, bạn có thể sử dụng Subversion trên một máy tính độc lập - bạn có thể cài đặt máy chủ cục bộ hoặc bạn có thể làm việc với tệp: //


Nhưng trừ khi có một lý do rất chính đáng tại sao bạn phải sử dụng lật đổ, tôi sẽ đề nghị rằng đây không phải là giải pháp tốt nhất cho vấn đề kiểm soát phiên bản cục bộ - nhất là vì nó thất bại một trong những điều mà tôi coi là thiết yếu tức là đảm bảo rằng bạn mã nguồn ở ít nhất hai nơi (có, ngay cả đối với các công cụ cá nhân). Do đó, tôi khuyên bạn nên sử dụng Hệ thống kiểm soát phiên bản phân tán (DVCS).

Một trong những lợi ích của DVCS là, khi các công cụ được cài đặt, các kho lưu trữ sẽ được chứa trong một thư mục và bạn có thể đồng bộ hóa nội dung giữa các thư mục khác nhau có chứa repo "giống nhau" miễn là bạn có quyền truy cập cấp tệp. Bạn cũng có tùy chọn để nói chuyện với các phiên bản "máy chủ" của các repos đó (được lưu trữ riêng tư hoặc có sẵn dưới dạng dịch vụ). Điều này làm cho cuộc sống dễ dàng hơn rất nhiều điều hành mọi thứ địa phương.

Có những lợi thế khác cho DVCS.

Như tôi đã lưu ý, tôi không nghĩ rằng bạn thực sự có một giải pháp VCS phù hợp cho đến khi mã của bạn nằm trên ít nhất hai máy (cụ thể là hai đĩa cứng riêng biệt và lý tưởng ở nhiều hơn một vị trí - mặc dù nhân bản và đẩy để nói USB hoặc Lưu trữ "đám mây" (skydrive, dropbox, et al) là một cách khác cũng sẽ hoạt động tốt).

Về mặt DVCS - tôi sẽ xem xét Mercurial (Hg) và Git và cả Veracity . Tôi sử dụng Mercurial vì nó vẫn đẹp hơn trên windows ...

Nếu bạn nói về các dịch vụ được lưu trữ thì tôi thực sự đồng ý rằng có rất nhiều điều đáng khen ngợi cho github - nhưng cũng có rất nhiều điều hay về bitbucket và Fogbugz / Kiln ... và điều tương tự cũng có thể đúng với rất nhiều dịch vụ khác mà tôi chưa liệt kê (ví dụ: http://beanstalkapp.com/ đã được đề cập khi gửi cho tôi trên twitter vào hôm nay)


2

Subversion không yêu cầu một máy chủ. Nó sử dụng một kho lưu trữ tập trung, nhưng kho lưu trữ này có thể được truy cập thông qua phương thức truy cập 'tệp', có nghĩa là, bạn chỉ cần truy cập vào hệ thống tệp mà kho lưu trữ được lưu trữ trên đó. Cách dễ nhất để thiết lập tính năng này là tạo một thư mục ở đâu đó trên hdd của bạn, trỏ rùaSVN (hoặc một công cụ tương tự) vào đó và 'tạo kho lưu trữ tại đây'. Từ đó, bạn có thể làm bất cứ điều gì bạn cần để đưa mã của mình vào kho lưu trữ.

Tuy nhiên, về lâu dài, có lẽ bạn nên sử dụng SCM phân tán, ứng viên tốt nhất là git (mạnh hơn, đường cong học tập dốc, hoạt động tốt nhất trên * nix) và đồng bóng (hơi kém mạnh mẽ, dễ học, hoạt động như nhau tốt trên windows và * nix). Với những bản sao này, bản sao làm việc của bạn chứa toàn bộ kho lưu trữ và bạn có thể tạo bao nhiêu bản sao (từ xa hoặc cục bộ) theo ý muốn. Bạn có thể bắt đầu cục bộ và nếu bạn quyết định lưu trữ bên ngoài kho lưu trữ, bạn chỉ cần sao chép kho lưu trữ cục bộ hiện tại của mình sang vị trí bên ngoài và bạn có thể đồng bộ hóa theo cả hai hướng bất cứ lúc nào. Tốt hơn nữa, vì mỗi bản sao của bạn chứa toàn bộ lịch sử dự án, SCM nhân đôi như một hệ thống dự phòng. Với lật đổ, nếu máy chủ của bạn chết và bạn chưa sao lưu, lịch sử của bạn sẽ biến mất - với git,

http://hginit.com/ có một hướng dẫn tuyệt vời về việc bắt đầu với đồng bóng.


1

khá nhiều công ty lưu trữ SVN cung cấp tài khoản miễn phí cho một hoặc hai nhà phát triển và không yêu cầu mã của bạn phải công khai. Kiểm tra biểu đồ được liên kết với phí $ 0, Yêu cầu OSS = KHÔNG. Tôi đếm chín nhà cung cấp đáp ứng các tiêu chí đó ngay bây giờ.

Mặc dù bạn chắc chắn có thể lưu trữ kho lưu trữ của riêng mình rất dễ dàng, có một số lợi ích khi sử dụng nhà cung cấp:

  • Bạn có thể truy cập mã của mình từ bất cứ đâu mà không cần thiết lập thêm.

  • Giữ mã của bạn ngoài trang web bảo vệ bạn khỏi sự cố đĩa cứng, hỏa hoạn, v.v.

  • Chi phí hành chính thấp.


Tôi thấy khái niệm hợp lý về phía OP - anh ấy muốn SVN, và muốn nó ở địa phương (từ cuối cùng - quan trọng nhất). Trường hợp sử dụng thông thường. Bạn đã trả lời về trường hợp sử dụng khác nhau , có thể được coi là "Không phải là câu trả lời" - vui lòng đọc lại văn bản của bạn từ những từ đầu tiên! Tôi đã không gắn cờ câu trả lời của bạn và người khác là "không phải là câu trả lời", trong khi chính thức thì chúng không phải là câu trả lời . HTH
Lazy Badger

Đọc lại CUỐI CÙNG CUỐI CÙNG của OP: "nếu tôi có thể thiết lập máy chủ cục bộ trên máy windows xp của mình mà chỉ tôi truy cập ngay cả khi tôi không có kết nối internet?" - đây là câu hỏi , trong văn bản tiếng Anh đơn giản. Câu hỏi này yêu cầu câu trả lời. "Câu trả lời" của bạn có tương quan theo bất kỳ cách nào với câu hỏi không?! Ít nhất hãy thành thật với chính mình , nhận ra những sai lầm
Lazy Badger

Tôi không đọc giữa các dòng (và chỉ ra điều này hơn một lần ), tôi đọc chính xác những gì được viết và trả lời cho câu hỏi, mà không nghĩ đến tác giả, rằng anh ấy muốn nói nhưng không nói . Trái với hầu hết các câu trả lời trong chủ đề này, có câu trả lời không tương quan với câu hỏi
Lazy Badger
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.