2010-03-29 36 views
5

Tôi muốn tối ưu hóa triển khai scp của mình hiện đang sao chép tất cả các tệp để chỉ sao chép các tệp đã thay đổi kể từ lần xây dựng cuối cùng. Tôi tin rằng nó nên có thể với các thiết lập hiện tại bằng cách nào đó, nhưng tôi không biết làm thế nào để làm điều này.Nhận ANT chỉ quét các tệp mới/đã thay đổi

tôi có như sau:

dự án/src/blah/blah/< ---- file tôi đang chỉnh sửa (chủ yếu là PHP trong trường hợp này, một số tài sản tĩnh)

Dự án/xây dựng < - ------ Tôi có một bước xây dựng cục bộ mà tôi sử dụng để sao chép các tệp vào đây

Tôi có một tác vụ scp ngay bây giờ sao chép tất cả Dự án/xây dựng ra máy chủ từ xa khi tôi cần.

Có thể bằng cách nào đó tận dụng lợi thế của thư mục "xây dựng" bổ sung này để thực hiện những gì tôi muốn - có nghĩa là tôi chỉ muốn tải lên "diff" giữa src/** và build/**. Có thể bằng cách nào đó lấy này như là một fileset trong ANT và sau đó scp đó?

Tôi nhận ra rằng điều đó có nghĩa là nếu tôi bằng cách nào đó xóa/lộn xộn xung quanh với các tệp trên máy chủ ở giữa, tập lệnh ANT sẽ không thông báo, nhưng đối với tôi điều này là không sao.

+0

Để làm rõ, tôi muốn nó về cơ bản thực hiện tác vụ sao chép thông thường với sao chép gia tăng. – Artem

Trả lời

13

Bạn có thể nói ant scp để chỉ sao chép các tập tin đã được sửa đổi kể từ khi push cuối cùng sử dụng thẻ modified như vậy:

<scp trust="true" sftp="true"... > 
    <fileset dir="${local.dir}"> 
    <modified> 
     <param name="cache.cachefile" value="localdev.cache"/> 
    </modified> 
    </fileset> 
</scp> 

Lần đầu tiên bạn sử dụng này, nó sẽ gửi tất cả các tập tin và bộ nhớ cache timestamps trong bộ nhớ cache được khai báo trong param. Sau đó, nó sẽ chỉ gửi những sửa đổi.

Đã kiểm tra và xác minh ở chế độ sftp.

0

Tôi nghĩ bạn cần sử dụng rsync để thay thế. Tôi đã tìm thấy article câu trả lời sau đây của bạn.

Trong một rsync nutshell sẽ tiếp tục nơi nó rời đi và nó sẽ có thể đường hầm nó qua ssh.

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