2009-05-04 24 views
42

Gần đây tôi đã gặp phải sự cố liên quan đến việc cam kết kết quả của việc hợp nhất trong lật đổ. Máy chủ Subversion của chúng tôi là @ 1.5.0 và ứng dụng TortoiseSVN của tôi hiện là @ 1.6.1.Làm cách nào để sửa "Cam kết không thành công. Tệp xxx đã lỗi thời. Không tìm thấy đường dẫn xxx".

Tôi đang cố gắng hợp nhất chi nhánh tính năng trở lại vào thân cây của mình. Hợp nhất xuất hiện để hoạt động tốt; tuy nhiên, cam kết không thành công với thông báo lỗi sau.

Commit failed (details follow): 
File 
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
is out of date 
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
path not found 
You have to update your working copy first. 

Thân máy đang hoạt động của tôi được cập nhật. Tôi thậm chí đã kiểm tra ra một cái mới vào một thư mục khác nhau để đảm bảo rằng không có bất kỳ sự lộn xộn của tàu địa phương với sự hợp nhất. Tôi đã làm một số nghiên cứu thêm vào điều này và tôi nghĩ rằng một phần của vấn đề là lỗi người dùng. Tôi nghĩ rằng các sự cố của chúng tôi là:

  1. Chúng tôi đã có một số nhà phát triển cam kết làm việc với ứng dụng khách lật đổ trước 1.5 và một số sau đó. Tôi tin rằng điều này có khả năng làm hỏng thông tin hợp nhất.
  2. Trong các ngành khác, chúng tôi đã thực hiện hợp nhất một phần. Tức là, chúng tôi không phải lúc nào cũng thực hiện việc hợp nhất tại gốc của nhánh. Điều này là để tạo điều kiện cập nhật các nỗ lực Flex và .NET trong cùng một nhánh.
  3. Chúng tôi đã thực hiện các lần hợp nhất theo chu kỳ trên nhánh của chúng tôi. Điều này được thực hiện bởi vì chúng tôi có nhiều nhánh song song và chúng tôi muốn cập nhật định kỳ nhánh của chúng tôi bằng mã mới nhất trong thân cây.

Tất cả những điều này rõ ràng không được đề xuất bởi sách/nhóm Subversion. Chúng tôi đã học được bài học của chúng tôi và bây giờ biết các phương pháp hay nhất. Tuy nhiên, trước tiên chúng tôi cần hợp nhất và cam kết chi nhánh mới nhất của chúng tôi.

Cách tốt nhất để khắc phục sự cố mà chúng tôi đang gặp phải là gì?

Việc xóa tất cả thông tin hợp nhất trong thân cây và nhánh có phải là giải pháp khả thi không? No. Tôi đã làm điều này nhưng nó không giải quyết được lỗi mà tôi đang nhận được ở trên.

Trả lời

2

Tôi đã gặp vấn đề tương tự hôm nay và tôi đã không thực hiện bất kỳ hợp nhất trung gian nào từ bài đăng đầu tiên của bạn chỉ # 1 có thể áp dụng - tuy nhiên tôi đã thực hiện cam kết cả từ ứng dụng khách svn trong ubuntu cũng như tortoisesvn trong cửa sổ . May mắn thay trong trường hợp của tôi không có thay đổi nào cho thân cây được tạo ra để tôi có thể thay thế thân cây bằng nhánh cây. Có thể các phiên bản svn khác nhau sau đó? Điều đó khá đáng lo ngại.

Nếu bạn sử dụng chức năng di chuyển/sao chép/xóa svn mặc dù không có lịch sử bị mất trong trường hợp của tôi - i svn đã di chuyển thân cây và sau đó svn di chuyển chi nhánh đến thân cây.

+0

Tôi nên làm điều đó là tốt, tuy nhiên, cho rằng điều này xảy ra trong một thời gian khủng hoảng tôi sai xuất khẩu chi nhánh của tôi để thân cây và cam kết những thay đổi, do đó mất lịch sử. May mắn thay, tôi đã không gặp phải vấn đề này kể từ đó. –

+0

Tôi nghĩ câu trả lời của @ simon-d dưới đây là giải pháp thực sự. Điều này giống như một giải pháp thay thế :) –

1

Oh boy! Điều này có vẻ xấu! Tùy chọn duy nhất mà tôi có thể nghĩ là bản sao làm việc bị hỏng.

Thử xóa bản sao làm việc, thực hiện thanh toán mới và thực hiện hợp nhất lại.

Nếu cách đó không hiệu quả, hãy đăng nhập lỗi.

+0

Có vẻ như khá tệ. Tôi đã thử thực hiện các lần kiểm tra mới nhưng chưa có bất kỳ may mắn nào. Thật không may, tại thời điểm này, truy vấn duy nhất của tôi có vẻ là xóa tất cả các tệp trong thư mục của tôi và xuất nhánh vào thư mục trunk và thêm lại tất cả các tệp được yêu cầu. –

1

Tôi không thể tìm thấy giải pháp thỏa đáng cho vấn đề này; tuy nhiên, tôi đã tìm thấy một giải pháp không đạt yêu cầu.

Tôi đã xóa tất cả các tệp trong phạm vi thân cây và cam kết những thay đổi này. Sau đó tôi xuất mã chi nhánh của mình vào trong thân cây, thêm tất cả các tệp và thực hiện một cam kết lớn. Điều này có ảnh hưởng đến thân cây của tôi bắt chước nhánh của tôi 1: 1 (đó là điều tôi muốn).

Thật không may, điều này tạo ra một sự phân chia lớn vì lịch sử của tất cả các tệp hiện bị "mất". Nhưng do hạn chế về thời gian, dường như không có bất kỳ lựa chọn nào khác.

Tôi vẫn sẽ quan tâm đến bất kỳ câu trả lời nào mà những người khác có thể có vì tôi muốn biết nguyên nhân gốc rễ là gì và cách tránh nguyên nhân gốc rễ trong tương lai.

0

Tôi nghĩ rằng tôi đã nhìn thấy một cái gì đó tương tự khi các thư mục được di chuyển trên máy chủ nhưng các bản sao làm việc vẫn còn bị ràng buộc vào cấu trúc thư mục SVN cũ hơn.Không chắc chắn nếu có ai di chuyển mọi thứ xung quanh trong thân cây của bạn trước khi bạn có cơ hội để hợp nhất các chi nhánh.

Đó có phải là một khả năng không?

+0

Không ai chỉnh sửa trong thân cây. Nói chung chỉnh sửa trong thân cây bị cấm như chúng tôi đang sử dụng phương pháp thân cây ổn định. Bởi vì chúng tôi quyết định bắt đầu từ đầu như trong câu trả lời ở trên, tôi sợ rằng tôi sẽ không bao giờ biết nguyên nhân thực sự của vấn đề. –

4

Tôi đã gặp sự cố tương tự khi cố gắng cam kết bản sao làm việc của mình. Những gì tôi đã làm là thêm thư mục mà Subversion báo cáo là "đường dẫn không tìm thấy" vào danh sách bỏ qua. Cam kết (nên thành công). Sau đó, thêm cùng một thư mục trở lại Subversion. Cam kết lại.

+0

Điều này có hiệu quả đối với tôi. –

+0

Cảm ơn @ David, một giải pháp dễ dàng hơn nhiều so với một số cách giải quyết trên mạng –

0

Điều này có vẻ như là một vấn đề với thuộc tính svn:mergeinfo thoát khỏi sự lộn xộn giữa nhánh và thân cây.

nào dẫn đến các câu hỏi sau (tha thứ cho hướng dẫn dòng lệnh của tôi khi tôi thực hiện sử dụng rùa nhiều):

  1. Bạn đang sáp nhập ở cấp độ gốc thân cây hoặc cấp độ thư mục phụ? Theo kinh nghiệm của tôi, tốt nhất nên làm ở cấp độ gốc, cách này toàn bộ thân cây nghĩ rằng nó đã được hợp nhất thành chứ không phải chỉ là một phần (điều này có vẻ gây nhầm lẫn svn rất nhiều trong 1.5.0)

  2. Câu hỏi tiếp theo của tôi là bạn có sử dụng thông số --reintergrate không? Tôi không bao giờ có thể nhớ làm thế nào để có được điều này trong con rùa, nhưng khi bạn đang đi trở lại thân cây từ một chi nhánh thì bạn nên sử dụng tham số này.

  3. Bạn đã hợp nhất thân cây vào nhánh trước khi bạn đã tích hợp lại chưa? Điều này có thể giúp loại bỏ xung đột mà bạn có thể thấy khi bạn hợp nhất trở lại?

  4. Bạn có bất kỳ thuộc tính svn:mergeinfo nào trên chi nhánh không ở cấp cơ sở không? Điều này tôi đã tìm thấy luôn luôn gây ra vấn đề. Bạn luôn có thể tìm thấy điều này bằng cách đi svn -R pg svn:mergeinfo. Sau đó, bạn có thể ghi lại các vị trí và bản sửa đổi dưới gốc, nếu bạn thấy chúng có liên quan, sau đó chuyển chúng vào thư mục gốc bằng svn merge --record-only -r start:end <location> và sau đó xóa chúng khỏi vị trí gốc phụ với svn pd svn:mergeinfo <location> Sau đó, bạn cần phải cam kết những thay đổi này

  5. Một khi bạn có tất cả những gì được thực hiện hãy thử sáp nhập lại.

+0

1. Chúng tôi đã thực hiện một phần hợp nhất. Chúng tôi đã ngừng thực hành đó. Mặc dù chúng ta vẫn tạo các nhánh từ một thư mục con trunk. 2. Chúng tôi hiếm khi có thể có tùy chọn --reintegrate hoạt động. Tôi quên lỗi chúng tôi nhận được vào lúc này. Chúng tôi đã chuyển sang chỉ định các bản chỉnh sửa mà chúng tôi muốn hợp nhất để tránh lỗi này. 3. Nói chung, chúng tôi hợp nhất các thân cây vào chi nhánh trước khi bất kỳ sáp nhập trở lại vào thân cây để chúng tôi có thể hòa giải các vấn đề hợp nhất trong chi nhánh. 4. Dường như không có bất kỳ vấn đề nào với thuộc tính svn: mergeinfo. Thông thường chúng tôi có một chi nhánh mở tại một thời điểm mặc dù chúng tôi có dịp đã có nhiều hơn nữa. –

+0

Tôi tin rằng các vấn đề của chúng tôi bắt nguồn từ một số vấn đề mà tất cả các vấn đề đã được giải quyết. 1. Các khách hàng lật đổ của chúng tôi không có cùng phiên bản. Một số đã hợp nhất không biết và làm cho hợp nhất ý kiến ​​không biết. 2. Chúng tôi đã thực hiện hợp nhất một phần (với máy khách Subversion khác) 3. Máy chủ Subversion của chúng tôi là 1.5.0. Nó vừa được cập nhật lên 1.6.3 tuần trước. Chúng tôi đã có trải nghiệm hợp nhất tốt hơn so với phiên bản trước. Tôi nghĩ tất cả những điều này đã góp phần vào các lỗi mà chúng tôi đã nêu ở trên. –

0

Tôi nghi ngờ nhưng có thể chạy dọn dẹp svn trên thư mục làm việc của bạn sẽ giúp ích.

+0

Thật không may, dọn dẹp đã không làm việc cho tôi. –

1

Tôi đã gặp phải vấn đề tương tự sau khi hợp nhất chi nhánh với hàng tấn thay đổi trở lại vào thân cây của tôi. Hai giải pháp duy nhất tôi có thể thấy là làm giải pháp di chuyển svn được cung cấp bởi Pacifika hoặc kết hợp thủ công các tệp bằng công cụ khác. Nhưng tôi đã tìm thấy một cách giải quyết ...

Máy không hoạt động đang chạy ứng dụng khách Subversion 1.6.5. Tôi đã làm điều tương tự trên máy với Subversion 1.5.4 và nó hoạt động! Trên cả hai máy tôi đã thực hiện 1) thanh toán sạch của trunk, 2) svn merge ..., và 3) svn commit. Máy chủ của tôi là 1.5.x cho những gì đáng giá.

Hy vọng điều này sẽ giúp ai đó.

4

Tôi vừa gặp sự cố tương tự nhưng không có bất kỳ phân nhánh hoặc hợp nhất nào gây ra sự cố. Giải pháp của tôi là:

  • svn xuất thư mục làm việc của tôi (bao gồm các tệp chưa được chuyển đổi) sang thư mục tạm thời.
  • đổi tên thư mục làm việc thành bản sao lưu.
  • svn kiểm tra thân cây.
  • sao chép tất cả thư mục từ thư mục xuất tạm thời qua thư mục làm việc mới.
  • svn cam kết.

Tất cả có vẻ ổn.

19

Tôi đã nhận được điều này trên máy chủ 1.6.2, 1.6.8 rùa. Tất cả trên Windows, không có sự kết hợp nào trong nhánh này.

Tôi đổi tên một thư mục và bằng cách nào đó (có thể do AnkhSVN) hai tệp trong thư mục đã được đánh dấu là "thay thế" thay vì "bình thường". Có một số thay đổi nhỏ bổ sung cho các tệp khác trong thư mục.

Hoàn nguyên các tệp được đánh dấu là đã thay thế sự cố đã khắc phục.

+2

Tôi vừa gặp sự cố này - giải pháp của bạn đã khắc phục sự cố cho tôi. :) –

+0

Giải pháp đơn giản tuyệt vời! chỉ cần hoàn nguyên các tệp và thực hiện lại các thay đổi. Rực rỡ. – jasop

26

Tôi vừa gặp sự cố này và nguyên nhân dường như là một thư mục đã bị gắn cờ là xung đột. Để khắc phục:

svn update 
svn resolved <the directory in conflict> 
svn commit 
+0

Để thực hiện việc này trong IntelliJ, bạn sẽ cần plugin Hỗ trợ Công cụ Dòng lệnh. Để có được nó, mở File> Settings (hoặc Ctrl + Alt + S)> Plugins. Nhấp vào nút "Duyệt qua kho lưu trữ". Tìm kiếm plugin "Hỗ trợ công cụ dòng lệnh". Nhấp vào nút "Cài đặt" trên đó. Khởi động lại IntelliJ. Bây giờ nó được thiết lập, bạn có thể chỉ cần nhấp vào Tools> Run Command (hoặc nhấn Ctrl + Shift + X) và chạy các lệnh của bạn trong IntelliJ. –

0

Tôi gặp vấn đề tương tự, đánh đầu và thấy rằng tôi đã thay đổi thư mục trong "represotory" từ "/" thành "/ trunk" và quên thực hiện lệnh "Chuyển đổi", trong TortoiseSVN!

1

Có sự cố tương tự với SVN 1.6.5 trên máy Mac 10.6.5, được nâng cấp lên SVN 1.6.9 và cam kết đã thành công.

3

Tôi biết đây là một bài đăng cũ, nhưng vấn đề này vẫn xảy ra khá thường xuyên. Cách đơn giản nhất tôi đã tìm thấy để giải quyết nó là đổi tên/xóa tệp .svn/all-wcprops trong thư mục bị ảnh hưởng, sau đó chạy bản cập nhật và cam kết.

0

Ồ, điều này đã khiến tôi mất một lúc để giải quyết, khi tôi đang sử dụng SVN thông qua Eclipse. Cuối cùng, điều duy nhất làm việc cho tôi là cam kết tất cả các tệp không bị ảnh hưởng, sau đó (với Eclipse đóng) đổi tên thư mục dự án và kiểm tra lại dự án từ SVN. Vui mừng nó hoạt động đúng ngay bây giờ!

0

Rõ ràng SVN không phải là một chương trình rất đáng tin cậy. Tôi đã có cùng một vấn đề (bằng cách sử dụng SVN với Turtoise) và giải quyết nó bằng cách lưu nội dung của tập tin .cs và sau đó trở lại 1 sửa đổi. Điều này cho thấy mâu thuẫn như thế này: "< < < < < < < filename thay đổi của tôi

======= đang sáp nhập từ kho sửa đổi"

trong khi tôi đã không thực hiện bất cứ điều gì đặc biệt (chỉ một lần đặt lại bản sửa đổi).

Tôi đã thay thế nội dung của tệp này bằng nội dung đã lưu, được lưu và sau đó chọn qua TortoiseSVN → Đã giải quyết. Sau đó tôi có thể thực hiện các sửa đổi đối với kho lưu trữ.

5

Tôi cũng có cùng một vấn đề và tôi giải quyết giống nhau theo phương pháp sau đây

svn resolve --accept=working <FILE/FOLDER NAME> 
svn cleanup 
svn update <FILE/FOLDER NAME> 
svn commit <FILE/FOLDER NAME> -m "Comment" 

Hy vọng điều này sẽ giúp bạn :)

0

tôi đã cùng một vấn đề khi tôi cố gắng để thực hiện một gói bị xóa (có chứa các lớp java khác nhau nhưng không có gì từ gói là cần thiết nữa).

Giải pháp của tôi/workaround để sửa chữa vấn đề:

  • tôi hoàn nguyên toàn bộ gói
  • xóa nội dung đầu tiên
  • cam kết nội dung xóa
  • Cuối cùng tôi cam kết các gói bị xóa lần nữa (và nó hoạt động trong hầu hết các trường hợp :-))

Tuy nhiên, đôi khi không thể thực hiện gói đã xóa (whic h chứa gì)

workaround của tôi:

  • Tôi tạo ra một lớp học giả trong gói
  • và sau đó tôi lặp đi lặp lại các bước nêu trên

gợi ý cuối cùng của tôi ...

Nhưng đôi khi nó giúp đơn giản để đồng bộ hóa các gói/dự án một lần nữa và sau đó tất cả mọi thứ hoạt động tuyệt vời một lần nữa.



Về cấu hình của tôi:

  • Eclipse Neon
  • SVN Interface: JavaHL (JNI) 1.8.13 (r1667537)
  • VisualSVN Server Manager, Phiên bản: 3.3.1



Có lẽ tôi có thể giúp ai đó với một trong những gợi ý của tôi.

1

tôi đã cùng một vấn đề, không biết lý do đằng sau nó là gì, nhưng tôi cố định bằng cách gõ trong terminal

svn update 

và sau đó tôi cam kết và bùng nổ nó làm việc!

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