Làm thế nào để thêm một thư mục hiện có với các tệp vào SVN?


84

Làm cách nào để bạn thêm một thư mục không có kiểm soát phiên bản vào một vị trí SVN cụ thể? Tôi thường bắt đầu viết mã và chỉ sau khi tôi có một vài thư mục chứa các tệp mã, tôi mới thêm nó vào SVN.

Những gì tôi thường làm là:

  1. svn có thư mục mẹ nơi tôi muốn tạo một thư mục mới để lưu trữ mã của mình.
  2. svn mkdir để tạo thư mục tôi muốn đặt mã của mình vào.
  3. Sao chép và dán mã của tôi lên.
  4. svn cam kết .
  5. Xóa thư mục mã làm việc hiện tại của tôi.
  6. Tạo lại thư mục mã làm việc của tôi bằng svn co .

2
Có thể trùng lặp để stackoverflow.com/questions/2431389/...
pmod

Câu trả lời:


134

Giả sử tôi có mã trong thư mục ~/local_dir/myNewAppvà tôi muốn đặt nó trong ' https://svn.host/existing_path/myNewApp ' (trong khi có thể bỏ qua một số mã nhị phân, thư viện của nhà cung cấp, v.v.).

  1. Tạo một thư mục trống trong kho lưu trữ svn mkdir https://svn.host/existing_path/myNewApp
  2. Đi tới thư mục mẹ của dự án, cd ~/local_dir
  3. Kiểm tra thư mục trống trên thư mục cục bộ của bạn. Đừng sợ - các tệp bạn có cục bộ sẽ không bị xóa. svn co https://svn.host/existing_path/myNewApp. Nếu thư mục của bạn có tên cục bộ khác với trong kho lưu trữ, bạn phải chỉ định nó làm đối số bổ sung.
  4. Bạn có thể thấy rằng svn stbây giờ sẽ hiển thị tất cả các tệp của bạn dưới dạng ?, có nghĩa là chúng hiện không được kiểm soát sửa đổi
  5. Thực hiện svn addtrên các tệp bạn muốn thêm vào kho lưu trữ và thêm những tệp khác vào svn:ignore. Bạn có thể tìm thấy một số tùy chọn hữu ích với svn help add, ví dụ --parentshoặc --depth empty, khi bạn muốn chọn lọc thêm chỉ là những file / thư mục.
  6. Cam kết với svn ci

Về điểm 5: Bạn có thể thêm tất cả các file / dirs của dir làm việc của bạn theo cách này trong bash: find . -name .svn -prune -o -print0|xargs -0 svn add
Nicolas M

1
Cách thực hiện tốt nhất mà tôi từng thấy để đưa nội dung mới vào svn.
Colin 't Hart

làm thế nào để bạn làm điều này: "Nếu thư mục của bạn có tên khác nhau tại địa phương hơn trong repo, bạn phải xác định nó như là đối số bổ sung"
Kristof Pal

1
@KristofPal:svn co https://svn.host/existing_path/myNewApp ~/local_dir/localNameOfFolder
qbolec

1
Cảm ơn bạn @qbolec, vì "đừng sợ". +1 trên tất cả "câu trả lời hay nhất". Một gợi ý cho những ai vẫn còn sợ hãi: bạn có thể sao lưu công việc của mình nếu bạn vẫn còn sợ hãi.
Stephan Samuel

55

Nếu tôi hiểu đúng trường hợp sử dụng của bạn, tôi khuyên bạn nên thử sử dụng thêm svn để đặt thư mục mới dưới phiên bản, xem tại đây . Thao tác sau sẽ thêm thư mục mới với các tệp một cách đệ quy dưới quyền kiểm soát phiên bản (nếu bạn đang ở trong bản sao làm việc hợp lệ):

svn add new_folder
svn commit -m "Add New folder to the project"

Nếu bạn không ở trong một bản sao đang hoạt động, hãy tạo nó bằng svn checkout , sao chép new_folder vào đó và thực hiện các bước trên.

HOẶC LÀ

Thử nhập svn , xem tại đây ; sau đây sẽ tạo một thư mục mới và tải tệp lên kho lưu trữ:

svn import -m "Import new folder to the project" new_folder \
        http://SVN_REPO/repos/trunk/new_folder

Cũng lưu ý rằng:

Sau khi nhập dữ liệu, hãy lưu ý rằng cây gốc không thuộc quyền kiểm soát của phiên bản. Để bắt đầu làm việc, bạn vẫn cần svn kiểm tra một bản sao mới hoạt động của cây


Nhưng thư mục mẹ không được kiểm soát phiên bản. Làm thế nào để nó biết được nơi để đặt nó trong kho svn
Siecje

Tôi không rõ các thư mục của bạn đang ở đâu, bạn đang làm việc không phải trong "bản sao làm việc"?
pmod

Tôi đã có một kho lưu trữ svn với các thư mục. Tôi tạo các tệp và thư mục không phải svn và muốn thêm chúng vào kho lưu trữ. Cách tôi làm bây giờ là kiểm tra một thư mục phía trên nơi tôi muốn đặt dự án của mình. Sau đó, tôi sao chép dán vào vị trí thanh toán và làm svn thêm vào đó.
Siecje

@Siecje Tôi nghĩ bây giờ tôi hiểu ý bạn
pmod

vì vậy tôi phải thực hiện kiểm tra có nghĩa là tôi phải xóa các tệp và tải lại chúng từ SVN? Vì vậy, đối với các tệp trang web, trang web sẽ cần phải ngừng hoạt động trong một giây khi tôi thực hiện việc này?
Siecje

9

Tôi không sử dụng lệnh. Bạn có thể thực hiện việc này bằng GUI:

  • Bấm chuột phải vào một khoảng trống trong thư mục Tài liệu của Tôi, chọn TortoiseSVN> Trình duyệt lại.
  • Nhập http: // subversion ... (đường dẫn URL của bạn đến máy chủ Subversion / thư mục mà bạn sẽ lưu vào) làm đường dẫn và chọn OK
  • Nhấp chuột phải vào thư mục gốc trong Repo và chọn Thêm thư mục . Đặt tên cho dự án của bạn và tạo nó.
  • Nhấp chuột phải vào thư mục dự án trong Repo-browser và chọn Checkout . Thư mục Checkout sẽ là Visual Studio\Projects\{your project}thư mục của bạn . Chọn OK.
  • Bạn sẽ nhận được cảnh báo rằng thư mục không trống. Nói để thanh toán / xuất vào thư mục đó - nó sẽ không ghi đè lên các tệp dự án của bạn.
  • Mở thư mục dự án của bạn. Bạn sẽ thấy dấu chấm hỏi trên các thư mục được liên kết với dự án VS của bạn chưa được thêm vào Subversion. Chọn các thư mục đó bằng Ctrl + Click, sau đó nhấp chuột phải vào một trong các mục đã chọn và chọn TortoiseSVN> Thêm
  • Chọn OK trên lời nhắc
  • Các tệp của bạn sẽ thêm. Chọn OK trên Thêm hoàn tất! hộp thoại
  • Nhấp chuột phải vào vùng trống của thư mục và chọn Làm mới. Bây giờ, bạn sẽ thấy các biểu tượng “+” trên các thư mục / tệp
  • Nhấp chuột phải vào vùng trống trong thư mục một lần nữa và chọn Cam kết SVN
  • Thêm thông báo về những gì bạn đang cam kết và nhấp vào OK

1

Nếu có ý định thêm bản sao cục bộ / làm việc vào SVN, tôi đã từng làm theo cách sau.

Lưu ý: Tôi sử dụng ứng dụng TortoiseSVN và các bước này giả định rằng bạn đã cài đặt ứng dụng TortoiseSVN.

  1. Tôi có một dự án (Thử nghiệm-4.2.2) tại địa phương của tôi. Tôi muốn tải lên / thêm nó vào kho lưu trữ SVN.
  2. Sử dụng trình duyệt đại diện TortoiseSVN, tôi đã tạo một thư mục trống, "Test-4.2.2"
  3. Tại địa phương của tôi, tôi đã đổi tên thư mục "Test-4.2.2" hiện có thành "Test-4.2.2.1" (tạm thời)
  4. Kiểm tra "Test-4.2.2" trống từ SVN cho địa phương của bạn
  5. Sao chép tất cả các thư mục con trong 4.2.2.1 vào thư mục kiểm tra này 4.2.2
  6. Bây giờ, nhấp chuột phải vào "Test-4.2.2" và cam kết.
  7. Xóa thư mục tạm thời, "Test-4.2.2.1"

1

Trong Windows 7, tôi đã làm điều này:

  1. Bạn đã cài đặt SVN và Tortoise SVN chưa? Nếu không, hãy Google chúng và làm như vậy ngay bây giờ.
  2. Đi tới thư mục SVN của bạn nơi bạn có thể có các kho lưu trữ khác (viết tắt của kho lưu trữ) (hoặc nếu bạn đang tạo một kho lưu trữ từ đầu, hãy chọn vị trí ổ C, ổ D, v.v. hoặc đường dẫn mạng).
  3. Tạo một thư mục mới để lưu kho mới của bạn. Gọi nó giống như tên dự án của bạn
  4. Nhấp chuột phải vào thư mục và chọn Tortoise SVN -> Tạo Kho lưu trữ tại đây
  5. Nói có để Tạo cấu trúc thư mục
  6. Bấm OK. Bạn sẽ thấy một biểu tượng mới trông giống như một "làn sóng" bên cạnh thư mục / kho lưu trữ mới của bạn
  7. Nhấp chuột phải vào repo mới và chọn SVN Repo Browser
  8. Nhấp chuột phải vào 'thân cây'
  9. Chọn THÊM Thư mục ... và trỏ đến cấu trúc thư mục của dự án đang phát triển.
  10. Bấm OK và SVN sẽ THÊM cấu trúc thư mục của bạn vào. Hãy kiên nhẫn! Có vẻ như SVN đã bị treo / đóng băng. Đừng lo lắng. Nó đang làm việc của nó.

Làm xong!


0

3 bước:

  • Mở "Trình duyệt Repo" (Sử dụng Liên kết của thư mục mẹ của năm).
  • Nhấp chuột phải Chọn "Thêm thư mục".
  • Duyệt đến thư mục của bạn.

nhập mô tả hình ảnh ở đây


Bạn không thể thêm một thư mục không tồn tại theo cách này. "Thêm thư mục" sẽ cung cấp cho bạn một cửa sổ Explorer để bạn có thể trỏ đến một thư mục hiện có, sau đó cung cấp một cửa sổ cam kết để bạn có thể thêm nó vào Subversion. Nó không phải để tạo một thư mục mới ở phía cục bộ - mà vẫn cần được thực hiện theo cách thủ công và được điền ở đó, sau đó điều này có thể được sử dụng để chuyển nội dung của nó vào Subversion. Điều này chỉ mang lại một nửa câu chuyện.
vapcguy

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.