Hướng dẫn dùng svn ignore trong PHP

answer

780

Đặt thuộc svn:ignoretính của thư mục mẹ:

svn propset svn:ignore dirname .

Nếu bạn có nhiều thứ để bỏ qua, hãy phân tách bằng dòng mới trong giá trị thuộc tính. Trong trường hợp đó, việc chỉnh sửa giá trị thuộc tính bằng trình soạn thảo bên ngoài sẽ dễ dàng hơn:

svn propedit svn:ignore .

780 hữu ích 5 bình luận chia sẻ

answer

400

Đây là một cấu trúc thư mục ví dụ:

\project
    \source
    \cache
    \other

Khi trong projectbạn thấy rằng thư mục bộ đệm của bạn không được thêm vào và hiển thị như vậy.

> svn st
M  source
?  cache

Để đặt thuộc tính bỏ qua, hãy làm

svn propset svn: bỏ qua bộ đệm.

nơi svn:ignorelà tên của thuộc tính bạn đang thiết, cachelà giá trị của tài sản, và .là thư mục bạn đang thiết lập thuộc tính này trên. Nó phải là thư mục mẹ của cachethư mục cần thuộc tính.

Để kiểm tra các thuộc tính nào được đặt:

> svn proplist
Properties on '.':
  svn:ignore

Để xem giá trị của svn:ignore:

> svn propget svn:ignore
cache

Để xóa các thuộc tính được thiết lập trước đó:

svn propdel svn:ignore

400 hữu ích 2 bình luận chia sẻ

answer

129

Điều quan trọng cần đề cập:

Trên dòng lệnh bạn không thể sử dụng

svn add *

Điều này cũng sẽ thêm các tệp bị bỏ qua, vì dòng lệnh mở rộng *và do đó svn addtin rằng bạn muốn tất cả các tệp được thêm vào. Do đó, sử dụng cái này thay thế:

svn add --force .

129 hữu ích 1 bình luận chia sẻ

answer

79

Vì tôi đã dành một chút thời gian để làm cho nó hoạt động, nên lưu ý rằng nếu các tệp đã tồn tại trong SVN, bạn cần phải svn deletechỉnh sửa chúng, sau đó chỉnh sửa thuộc svn:ignoretính.

Tôi biết điều đó có vẻ hiển nhiên, nhưng họ cứ hiển thị như ?trong svn statusdanh sách của tôi , khi tôi nghĩ rằng nó sẽ bỏ qua chúng ở địa phương.

79 hữu ích 1 bình luận chia sẻ

answer

69

Để mở rộng một chút, nếu bạn đang làm điều này với công cụ dòng lệnh svn, bạn muốn gõ:

svn propedit svn:ignore path/to/dir

sẽ mở trình soạn thảo văn bản của bạn, sau đó nhập '*' để bỏ qua mọi thứ bên trong nó và lưu + thoát - điều này sẽ bao gồm chính thư mục trong svn, nhưng bỏ qua tất cả các tệp bên trong nó, để bỏ qua thư mục, hãy sử dụng đường dẫn của cha mẹ, và sau đó nhập tên của thư mục trong tệp. Sau khi lưu, hãy chạy một bản cập nhật ['svn up'], rồi kiểm tra đường dẫn thích hợp.

69 hữu ích 1 bình luận chia sẻ

answer

28

Đặt thuộc svn:ignoretính trên thư mục cha:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

Điều này sẽ ghi đè lên bất kỳ giá trị hiện tại của svn:ignore. Bạn chỉnh sửa giá trị với:

$ svn pe svn:ignore .

Mà sẽ mở trình soạn thảo của bạn. Bạn có thể thêm nhiều mẫu, một mẫu trên mỗi dòng.

Bạn có thể xem giá trị hiện tại với:

$ svn pg svn:ignore .

Nếu bạn đang sử dụng GUI thì nên có một tùy chọn menu để làm điều này.

28 hữu ích 1 bình luận chia sẻ

answer

20

Cảm ơn tất cả những đóng góp ở trên. Tôi chỉ muốn chia sẻ một số thông tin bổ sung từ kinh nghiệm của tôi trong khi bỏ qua các tập tin.

Khi các thư mục đã được kiểm soát sửa đổi

Sau khi nhập svnsvn co các tập tin, những gì chúng ta thường làm lần đầu tiên.

Tất cả các bộ đệm thời gian chạy, thư mục đính kèm sẽ được kiểm soát phiên bản. vì vậy, trước khi svn ps svn: bỏ qua , chúng ta cần xóa nó khỏi kho lưu trữ.

Với phiên bản SVN 1.5 ở trên chúng ta có thể sử dụng svn del --keep-local your_folder, nhưng đối với phiên bản cũ hơn, giải pháp của tôi là:

  1. svn xuất một bản sao sạch các thư mục của bạn [không có .svnthư mục ẩn]
  2. svn del cục bộ và kho lưu trữ,
  3. svn ci
  4. Sao chép lại các thư mục
  5. Làm svn st và xác nhận các thư mục được gắn cờ là '?'
  6. Bây giờ chúng ta có thể làm svn ps theo các giải pháp

Khi chúng ta cần nhiều hơn một thư mục bị bỏ qua

  • Trong một thư mục tôi có hai thư mục cần được đặt là svn:ignore
  • Nếu chúng ta đặt một, cái khác sẽ bị xóa.
  • Sau đó, chúng tôi tự hỏi chúng tôi cần svn pe

svn pesẽ cần chỉnh sửa tệp văn bản và bạn có thể sử dụng lệnh này nếu được yêu cầu để đặt trình soạn thảo văn bản của mình bằng vi :

export SVN_EDITOR=vi
  1. Với "o", bạn có thể mở một dòng mới
  2. Nhập tất cả các tên thư mục bạn muốn bỏ qua
  3. Nhấn phím 'esc' để thoát khỏi chế độ chỉnh sửa
  4. Nhập ": wq" rồi nhấn Enterđể lưu và thoát

Các tập tin trông giống như thế này:

runtime
cache
attachments
assets

20 hữu ích 1 bình luận chia sẻ

answer

19

Xóa nó trước ...

Nếu thư mục của bạn foođã được kiểm soát phiên bản, hãy xóa nó trước:

svn rm --keep-local foo

... sau đó bỏ qua:

svn propset svn:ignore foo .

19 hữu ích 0 bình luận chia sẻ

answer

12

... và nếu bạn muốn bỏ qua nhiều thư mục [nói build/ temp/*.tmptập tin], bạn có thể thực hiện theo hai bước [bỏ qua thuộc tính đầu tiên và chỉnh sửa bỏ qua [xem các câu trả lời khác tại đây] hoặc người ta có thể viết một cái gì đó như

svn propset svn:ignore "build
temp
*.tmp" .

trên dòng lệnh.

12 hữu ích 0 bình luận chia sẻ

answer

11

Nếu bạn đang sử dụng ứng dụng khách SVN cụ thể là TortoiseSVN , thì trên cam kết, bạn có tùy chọn nhấp chuột phải vào các mục và chọn "Thêm vào danh sách bỏ qua".

11 hữu ích 0 bình luận chia sẻ

answer

6

Lệnh bỏ qua nhiều mục là một chút khó khăn và yêu cầu dấu gạch chéo ngược.

svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .

Lệnh này sẽ bỏ qua bất cứ điều gì tên cache, tmp, null, và and_so_ontrong thư mục hiện hành.

6 hữu ích 3 bình luận chia sẻ

answer

5

Tôi đã có vấn đề nhận được các thư mục lồng nhau bị bỏ qua; thư mục hàng đầu tôi muốn bỏ qua sẽ không hiển thị với 'trạng thái svn' nhưng tất cả các thư mục con đã làm. Điều này có thể là hiển nhiên đối với những người khác, nhưng tôi nghĩ tôi sẽ chia sẻ nó:

THÍ DỤ:

/Thân cây

/ thân cây / bộ đệm

/ trunk / cache / subir1

/ trunk / cache / subir2

cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci

5 hữu ích 0 bình luận chia sẻ

answer

4

Bash oneliner cho nhiều lần bỏ qua:

svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"

4 hữu ích 0 bình luận chia sẻ

answer

3

Nếu thư mục dự án của bạn được đặt tên / Project và thư mục bộ đệm của bạn được đặt tên / Project / Cache, thì bạn cần đặt thuộc tính lật đổ trên / Project. Tên thuộc tính phải là "svn: bỏ qua" và giá trị thuộc tính phải là "Cache".

Tham khảo này trang trong cuốn hướng dẫn Subversion để biết thêm về tài sản.

3 hữu ích 0 bình luận chia sẻ

answer

3

Câu trả lời của Jason sẽ làm nên chuyện. Tuy nhiên, thay vì đặt svn: bỏ qua thành "." trên thư mục bộ đệm, bạn có thể muốn bao gồm "bộ đệm" trong thuộc tính svn: bỏ qua thuộc tính của thư mục mẹ , trong trường hợp thư mục bộ đệm không luôn luôn xuất hiện. Tôi làm điều này trên một số thư mục "vứt đi".

3 hữu ích 0 bình luận chia sẻ

answer

3

"Cảm ơn" svn vì một cách ghê tởm, không có thật và khó bỏ qua các tập tin.

Vì vậy, tôi đã viết một tập lệnh svn-ign-all :

#!/bin/sh

# svn-ignore-all

# usage: 
#   1. run svn status to see what is going on at each step 
#   2. add or commit all files that you DO want to have in svn
#   3. remove any random files that you don't want to svn:ignore
#   4. run this script to svn:ignore everything marked '?' in output of `svn status`

svn status |
grep '^?' |
sed 's/^? *//' |
while read f; do
    d=`dirname "$f"`
    b=`basename "$f"`
    ignore=`svn propget svn:ignore "$d"`
    if [ -n "$ignore" ]; then
        ignore="$ignore
"
    fi
    ignore="$ignore$b"
    svn propset svn:ignore "$ignore" "$d"
done

Ngoài ra, để bỏ qua danh sách cụ thể của các tệp / tên đường dẫn, chúng ta có thể sử dụng biến thể svn-bỏ qua này . Tôi đoán svn-ign-all nên thực sự giống như xargs svn-ign.

#!/bin/sh

# svn-ignore

# usage:
#   svn-ignore file/to/ignore ...

for f; do
    d=`dirname "$f"`
    b=`basename "$f"`
    ignore=`svn propget svn:ignore "$d"`
    if [ -n "$ignore" ]; then
        ignore="$ignore
"
    fi
    ignore="$ignore$b"
    svn propset svn:ignore "$ignore" "$d"
done

Một điều nữa: Tôi có xu hướng làm ô nhiễm thanh toán svn của tôi với nhiều tệp ngẫu nhiên. Khi đến lúc phải cam kết, tôi chuyển các tệp đó vào thư mục con 'cũ' và bảo svn bỏ qua 'cũ'.

3 hữu ích 2 bình luận chia sẻ

answer

3

ĐỂ KIẾM ĐƯỢC GIÁM ĐỐC R SNG SVN S IG IGNORE:

  1. việc này sẽ xóa các tệp khỏi kho lưu trữ, nhưng giữ thư mục dưới sự kiểm soát của SVN:

svn xóa --keep-local path / library_to_keep / *

  1. sau đó đặt bỏ qua thư mục [và tất cả nội dung]:

svn propset svn: bỏ qua "*" path / thư mục_to_keep

3 hữu ích 0 bình luận chia sẻ

answer

2

Nếu bạn đang sử dụng một lối vào cho SVN như TortoiseSVN hoặc một loại tích hợp IDE nào đó, thì cũng nên có một tùy chọn bỏ qua trong cùng một menu như thao tác cam kết / thêm.

2 hữu ích 0 bình luận chia sẻ

answer

1

Đặt svn: bỏ qua thuộc tính . Hầu hết các công cụ UI svn có một cách để làm điều này cũng như thảo luận về dòng lệnh trong liên kết.

1 hữu ích 0 bình luận chia sẻ

answer

1

Vì bạn đang sử dụng Phiên bản nên nó thực sự dễ dàng:

  • Duyệt bản sao đã đăng ký của bạn
  • Nhấp vào thư mục để bỏ qua
  • Trong hộp "Bỏ qua bên phải, nhấp vào Chỉnh sửa
  • Nhập *. * Để bỏ qua tất cả các tệp [hoặc * .jpg cho chỉ các tệp jpg, v.v.]

1 hữu ích 0 bình luận chia sẻ

answer

1

Xem dấu gạch chéo của bạn quá. Tôi thấy rằng bao gồm images/*trong tập tin cài đặt bỏ qua của tôi đã không bỏ qua ./images/. Khi tôi chạy svn status -unó vẫn hiển thị ? images. Vì vậy, tôi chỉ thay đổi cài đặt bỏ qua thành chỉ images, không có dấu gạch chéo. Chạy một kiểm tra trạng thái và xóa nó đi.

1 hữu ích 0 bình luận chia sẻ

answer

1

Được giải quyết với Eclipse theo cách tiếp theo:

Trước hết, thực hiện đồng bộ hóa thư mục của bạn với dự án:

nhóm -> đồng bộ hóa

Trong chế độ xem tiếp theo, chế độ xem nhóm, bạn có thể thấy tất cả các tài nguyên mà bạn có thể cam kết với máy chủ SVN.

Vì vậy, chọn thư mục tài nguyên của tài nguyên mà bạn muốn bỏ qua và sau đó bạn có thể bỏ qua nó bằng cách sử dụng

nhóm -> thêm vào svn:ignore.

Sau đó, trong cửa sổ xác nhận, hãy chọn tùy chọn đầu tiên: "bỏ qua theo tên".

Ví dụ: Nếu tôi muốn bỏ qua thư mục đích và tài nguyên. Class của họ, tôi sẽ đồng bộ hóa và trong chế độ xem đồng bộ hóa, tôi sẽ chọn thư mục đích. Sau đó, tôi sẽ chọn

nhóm-> thêm

đến svn:ignorevà sau đó tôi sẽ xác nhận tùy chọn đầu tiên trong cửa sổ xác nhận.

1 hữu ích 0 bình luận chia sẻ

Chủ Đề