SVN- Cách cam kết nhiều tệp trong một lần chụp


104

Tôi đã cố gắng xác nhận nhiều tệp trên các thư mục khác nhau trong một lần chụp như bên dưới,

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

Vì tôi muốn loại trừ một số tệp khỏi danh sách cam kết nên tôi đã đặt từng tên tệp trong dòng lệnh như trên. Tôi đã tổng hợp nó trong notepad và nó có khoảng 25 tệp. Khi tôi sao chép và dán nó trên dòng lệnh, một vài tệp cuối cùng bị thiếu và tôi đoán đây có thể là hạn chế của bộ đệm dòng lệnh (?). Có tùy chọn nào tôi có thể tăng độ dài bộ đệm không?

Có tùy chọn nào tôi có thể đặt tất cả các tệp trong một tệp văn bản và đưa nó làm đối số cho cam kết svn không?


8
@Thi - Những người không sử dụng GUI để lật đổ là những kẻ tự bạo. Tải Tortoise SVN hoặc tương đương với Linux.
tpow

1
Nếu có giới hạn về độ dài bộ đệm, nó sẽ không nằm trong SVN, nó sẽ nằm trong bất kỳ trình bao nào bạn đang sử dụng.
Colin Fine

20
@cinquTimo: bạn có thể thích sử dụng GUI cho mọi thứ. Những người khác thì không.
Colin Fine

@Colin, tôi nghĩ vậy, làm thế nào để tăng chiều dài bộ đệm shell trong trường hợp đó?
Thi

3
"Những người không sử dụng GUI để lật đổ là những kẻ tự bạo." - Masochism là sử dụng sự lật đổ, nhưng một số người trong chúng ta không có lựa chọn nào khác.
Daniel

Câu trả lời:


157

Bạn có thể sử dụng một danh sách thay đổi svn để theo dõi một tập hợp các tệp mà bạn muốn cam kết cùng nhau.

Trang được liên kết có rất nhiều chi tiết, nhưng đây là một ví dụ tóm tắt điều hành:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

Bạn có thể sử dụng --targets ARGtùy chọn trong đó ARG là tên của tệp văn bản chứa các mục tiêu cho cam kết.

svn ci --targets myfiles.txt -m "another commit"

Hoạt động cho tôi trong lệnh bash này:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

Tôi không gặp vấn đề gì khi cam kết một vài tệp như thế này:

svn commit fileDir1/ fileDir2/ -m "updated!"

Điều này không làm việc cho tôi. Gặp lỗi "svn: '/' không phải là bản sao đang hoạt động". Ở đây tôi đã đăng câu hỏi của tôi, bạn có thể xem. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

Có làm việc tốt. Ngoài ra trong tài liệu gốc của tôi, tôi có thể cam kết tất cả các thay đổi trong cấu trúc cây bản sao làm việc với điều này:> svn commit. -m 'hàng loạt cam kết thông báo'
Grigoreas P.

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.