2008-09-15 29 views
11

Các ngoại vi SVN cho phép bạn tạo thư mục SVN xuất hiện như thể nó ở một vị trí khác. Sử dụng tốt cho việc này là có một thư mục chung được chia sẻ trên tất cả các dự án của bạn trong SVN.Các thay đổi thư mục con bên ngoài SVN không hiển thị trong nhật ký xem (tortoise svn)

Tôi có thư mục/trunk/common trong SVN mà tôi chia sẻ qua một vài dự án khác nhau.

Ví dụ:

  • Project1:/trunk/project1/phụ thuộc
  • project2:/trunk/project2/phụ thuộc
  • Project3:/trunk/project3/phụ thuộc
  • Project4:/trunk/project4/depends

Mỗi thư mục phụ thuộc này trống, nhưng có một svn: external defined để trỏ tới thư mục/trunk/common của tôi.

Vấn đề là khi tôi xem nhật ký trong bất kỳ dự án nào:/trunk/projectX/nó không hiển thị thay đổi từ svn: externals. Tôi đang sử dụng SVN rùa làm khách hàng SVN của tôi.

Có ai biết cách thay đổi hành vi này không? Tôi muốn cho bản ghi chương trình của/trunk/projectX để bao gồm bất kỳ thay đổi nào cho bất kỳ svn: externals được xác định là tốt.

+0

Brian, tôi đồng ý đây là một PITA lớn cho bất kỳ ai sử dụng ext ernals và một hành vi không nhất quán so với Cam kết, Kiểm tra sửa đổi và vv. Vì câu hỏi của bạn khá cũ, bạn có biết liệu có gì thay đổi trong khi đó không? – Pokot0

+0

@ Pokot0: Không, tôi không nghĩ như vậy –

Trả lời

3

này là không thể với phiên bản hiện tại của Subversion, khác vì gọi một cách rõ ràng log svn trên mục tiêu của thư mục externals

Bạn có thể thử issueing một yêu cầu tính năng tại the Apache Subversion website

0

Khi bạn hiển thị các bản ghi đối với một thư mục được phiên bản cục bộ, nó sẽ hiển thị các thay đổi có liên quan đến thư mục cụ thể này. Các bên ngoài chỉ là một liên kết đến một thư mục khác trên kho lưu trữ. Điều duy nhất bạn có thể theo dõi về các tham chiếu bên ngoài, từ một thư mục phụ thuộc vào dự án bên ngoài này, là định nghĩa tham chiếu chính nó. Đó là vì tham chiếu là thuộc tính subversion của thư mục phụ thuộc.

Hãy tưởng tượng bạn có hệ thống phân cấp repo sau:

repo 
    myfirstproject 
     trunk 
    mysecondproject 
     trunk 
    mycommonlib 
     trunk 

mysecondproject\trunk thư mục có svn sau: bên ngoài tài sản:

svn://mysrv/repo/[email protected] sharedlib 

Một thanh toán của mysecondproject \ trunk bên trong một thư mục mới secondproject sẽ tạo nội dung như thế này trên hệ thống tệp của bạn:

secondproject Folder (refers mysecondproject/trunk) 
    sharedlib Folder (refers mycommonlib/trunk @ revision #2451) 

Calling "Show log" lệnh của Rùa từ secondproject thư mục sẽ chỉ hiển thị secondproject file thay đổi, và cuối cùng là thay đổi xảy ra trên svn: ngoài sở hữu của thư mục.

Để nhận nhật ký thay đổi của dự án bên ngoài, bạn cần gọi "Hiển thị nhật ký" từ thư mục bên trong sharedlib, có ý nghĩa.

+4

Nó có ý nghĩa hơn để hiển thị nhật ký của bất cứ điều gì bên dưới điểm cho dù đó là từ một svn: bên ngoài hay không. Cũng giống như thanh toán sẽ kiểm tra mọi thứ. Và bản cập nhật sẽ cập nhật mọi thứ. –

0

từ kinh nghiệm cá nhân của tôi nhật ký của các liên kết bên ngoài chỉ được báo cáo nếu trong cùng một cam kết nơi bạn thay đổi tệp bên ngoài, bạn sửa đổi cũng chỉ một tệp trong thư mục "nội bộ". Bằng cách này, SVN có thể truy xuất với nhật ký thích hợp, nhật ký từ thư mục bên ngoài.

Tôi nghĩ rằng việc sử dụng móc có thể thực hiện một cơ chế để tự động điền tệp tại chỗ trong thư mục làm việc cho mọi cam kết, cũng nếu cam kết bắt đầu từ liên kết bên ngoài.

Bye

0

Tôi nghĩ rằng, sau khi Subversion 1,7 (trong đó giới thiệu thư mục svn duy nhất trong thư mục gốc của WC) đó là sạch hơn: cho thư mục kiểu externals thư mục bên ngoài bên trong công tác Copy là a) b độc lập) lồng nhau làm việc Bản sao kho riêng biệt

>dir /B /S /AD 
z:\subversion-troubleshoot-b\.svn 
... 
z:\subversion-troubleshoot-b\trunk 
z:\subversion-troubleshoot-b\tags 
z:\subversion-troubleshoot-b\trunk\lib 
z:\subversion-troubleshoot-b\trunk\lib\.svn 
... 
z:\subversion-troubleshoot-b\tags\1.0.0 
z:\subversion-troubleshoot-b\tags\1.0.1 
z:\subversion-troubleshoot-b\tags\1.0.1\lib 
z:\subversion-troubleshoot-b\tags\1.0.1\lib\.svn 
... 

và phụ huynh WC không chứa bất kỳ thông tin về lồng WC (dir của WC, được tạo ra từ/các kho lưu trữ, lưu ý svn hiện diện dir hai lần chỉ cho tuyến chính)

>svn ls -R 
readme.textile 
tags/ 
tags/1.0.0/ 
tags/1.0.0/core_mod.txt 
tags/1.0.1/ 
tags/1.0.1/core_mod.txt 
trunk/ 
trunk/core_mod.txt 

khi thân cây (và các thẻ tương ứng) có lib thư mục con như bên ngoài

Repo-Browser with externals

Hỗ trợ xử lý externals thêm để cập nhật và cam kết, bởi vì hỗ trợ này tạo lệnh độc lập và không liên quan liên tiếp - và vì mà không có sự hỗ trợ bên ngoài này không có ý nghĩa, nhật ký svn tổng hợp phải bằng cách nào đó kết hợp (theo nguyên tắc chưa biết, BTW)

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