2009-12-31 27 views
9

Chúng tôi cố gắng giữ thuộc tính 'svn: mergeinfo' trên thư mục gốc chỉ. Tuy nhiên, chúng tôi tiếp tục nhìn thấy nó leo vào các thư mục con. Chúng tôi đã có thể xác định một số nguyên nhân có thể:Làm thế nào để tránh svn: mergeinfos trên các thư mục con?

  1. Di chuyển một thư mục trong repo trình duyệt
  2. Di chuyển và/hoặc các gói đổi tên trong IntelliJ
  3. Sử dụng svn khách hàng cũ

Can bất cứ ai cung cấp một danh sách những điều chúng ta không nên làm để tránh tạo ra các tài sản này một cách tình cờ?

Các công cụ chúng tôi đang sử dụng là IntelliJ 8 (sớm 9), Ankh, TortoiseSVN và SlikSvn.

Trả lời

1

Chúng tôi đã viết một móc/kích hoạt SVN mà chỉ đơn giản là từ chối cam kết svn: tài sản trên không thân cây. Chúng tôi không bao giờ nhìn lại.

+0

Bạn có thể chia sẻ kịch bản móc không? –

+0

@WinstonSmith - Tôi không còn làm việc ở cùng một công ty nữa, vì vậy tôi không có quyền truy cập vào móc. Nếu nó thực sự quan trọng với bạn, tôi có thể thử và hỏi xung quanh, nhưng nó sẽ rất tầm thường để thực hiện (nếu không, chỉ cần hỏi một câu hỏi ở đây về cách làm điều đó). – ripper234

0

Tôi không thể cung cấp danh sách như vậy. Tôi khuyên bạn nên sử dụng móc svn sẽ hành động người dùng đăng nhập dẫn đến thay đổi thuộc tính thư mục và đưa ra cảnh báo hoặc từ chối cam kết, bất kỳ điều gì phù hợp theo quy trình làm việc của bạn.

11

Thật không may, khách hàng cũ svn chỉ thực hiện việc này và bất kỳ công cụ nào dựa trên các phiên bản cũ của svn cũng bị hỏng. Cách duy nhất để giải quyết vấn đề này là xóa các mục nhập svn: mergeinfo đã tạo trước khi chúng được cam kết. Vì hầu hết mọi người đều không biết rằng chúng được tạo ra, thì cách thực sự duy nhất để thực thi đó là móc nối trước hoặc chỉ cần thực hiện:

svn propdel --recursive svn:mergeinfo $ROOT/* 

để làm sạch chúng ngay bây giờ. Hãy cẩn thận khi thực hiện điều này, vì nó sẽ hủy mọi bản ghi hợp nhất từng phần mà bạn được thực hiện, vì vậy bạn chỉ nên thực hiện việc này nếu bạn thực sự không thực hiện các hợp nhất một phần. Người hỏi không, và cũng không làm trong môi trường của chúng tôi.

Sự cố được khắc phục trong ứng dụng khách svn mới hơn, do đó sự cố sẽ chậm dần, nhưng có thể mất chút thời gian trước khi tất cả các công cụ trong quy trình công việc của bạn được thay thế.

Dựa trên câu trả lời khác cho câu hỏi này, giải thích nhanh về nguyên nhân gây ra sự cố. Khi bạn làm một bản sao làm việc di chuyển hoặc xóa svn khách hàng cũ hơn 1.5.5 tạo ra một mục nhập svn: mergeinfo giả mạo. Đây là resolved in svn 1.5.5.

+0

Điều này không hủy thông tin hợp nhất hiện có hay là thông tin hợp nhất dư thừa ở đó? –

+1

Trong trường hợp của chúng tôi, mergeinfo là thừa. Nhưng bạn đúng, nó sẽ phá hủy thông tin hợp nhất một phần kiến ​​mà bạn đã làm. –

+0

câu trả lời cập nhật để đề cập đến vấn đề này, và để mô tả vấn đề, và khi nó được giải quyết. –

0

Thực hiện hợp nhất trên thư mục con hoặc các tệp riêng lẻ gây ra điều này và nó nên gây ra bởi vì nó phải ghi lại thông tin hợp nhất.

Cách tốt nhất là thực hiện các phép nhập của bạn ở cấp chính và khi cần thiết để áp dụng nó, hãy hoàn nguyên các thay đổi bạn không muốn hợp nhất và sau đó cam kết.

+0

Tôi nhận được thuộc tính này ngay cả khi không thực hiện bất kỳ sự hợp nhất nào trên các thư mục con. – ripper234

+0

Đối với bất kỳ ai bị giảm giá, vui lòng cung cấp lý do cho điều đó? Không hợp nhất ở cấp phụ là rất quan trọng nếu bạn chỉ muốn thông tin hợp nhất của mình ở cấp chính. –

+1

Tôi đã không downvote bạn, tuy nhiên trong khi những gì bạn nói là chính xác, vấn đề là bản sao cũng tạo ra các mục. Điều này đã được sửa trong 1.5.5 (* không tạo ra mergeinfo cho các di chuyển wc-wc hoặc các bản sao (r34184, -585)) –

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