Có ứng dụng khách FTP hoặc FTP nào cho phép tải lên delta delta - tức là chỉ tải lên các phần của tệp đã bị thay đổi?


9

Tôi thường xuyên thực hiện các thay đổi nhỏ đối với các tệp văn bản khá lớn thông qua FTP ( các tệp CSS để phát triển web ) và vì kết nối internet của tôi rất chậm, nên đây là một quá trình rất đau khổ.

Ngay cả khi tôi chỉ thay đổi một ký tự của tệp, tôi vẫn phải ngồi và chờ trong thời gian đáng kể trong khi toàn bộ tệp được tải lên lại máy chủ.

Có cách nào để tôi có thể chỉnh sửa các tệp được lưu trữ từ xa trên máy tính cục bộ của mình không và khi tôi lưu tệp, chỉ tải lên các phần của tệp đã thay đổi ?

Chỉnh sửa: Tôi nghĩ rằng tôi đã không rõ ràng về cách tôi đang sử dụng ứng dụng khách FTP của mình vào lúc này. Về cơ bản, tôi mở một tệp từ xa qua SFTP bằng WinSCP. WinSCP lưu nó vào một thư mục tmp, khởi chạy Sublime Text và tôi bắt đầu chỉnh sửa nó. Khi tôi nhấn lưu, WinSCP sẽ tự động tải lên lại tệp. Tôi thực sự không bao giờ lưu tệp vĩnh viễn trên máy tính của mình - mọi thứ được thực hiện thông qua thư mục tạm thời của WinSCP. Đó là lý do tại sao tôi đang tìm kiếm một giải pháp có thể được sử dụng theo kiểu "nhấn và chạy" này.


Thảo luận trước

Trước đây tôi đã đăng câu hỏi này lên ServerFault , nơi sử dụng một cái gì đó như git đã được đề xuất, tuy nhiên như tôi đã giải thích:

Với git hoặc một công cụ tạo phiên bản tương tự tôi sẽ phải thực hiện một cam kết mỗi lần tôi lưu tệp, phải không? Ngay cả khi điều đó có thể được thực hiện tự động (tức là nếu tôi có macro tạo tệp Ctrl-S trong tệp lưu văn bản Sublime và thực hiện thao tác đẩy git cùng một lúc), tôi có thể thực hiện 50 - 100 lần chỉnh sửa tệp CSS mỗi giờ; chắc chắn tôi sẽ kết thúc với một bản ghi cam kết bị spam? Ngoài ra, giải pháp git là không linh hoạt vì nó phụ thuộc vào bất kỳ tệp nào tôi đang chỉnh sửa là một phần của repo git.

Giải pháp duy nhất tôi có thể nghĩ đến cho đến nay là một loại quy trình bị hack bằng rsync nhưng ngay cả khi đó, nó rất khó sử dụng:

  1. Tôi tải xuống (các) tệp tôi cần cho máy tính của mình (thông qua FTP / rsync / bất cứ thứ gì).
  2. Tôi mở một tập tin trong (ví dụ) Sublime Text và bắt đầu chỉnh sửa.
  3. Một quá trình nền đang theo dõi thư mục để sửa đổi tập tin. Khi tôi lưu tệp, quá trình đó sẽ ngay lập tức kích hoạt thao tác rsync từ máy tính của tôi đến máy chủ, chuyển các phần đã thay đổi của tệp.

Tuy nhiên, tôi cần phải thiết lập thủ công hoặc chỉ định đường dẫn tệp hoặc thư mục từ xa hoặc nếu không, tập lệnh rsync cục bộ sẽ không biết nơi để đồng bộ hóa các tệp để phương thức này vẫn không linh hoạt. Phương pháp này sẽ không cho phép tôi duyệt ngay một tệp ngẫu nhiên, mở tệp và lưu nó giống như ứng dụng khách FTP.

Cũng không có phản hồi rõ ràng như thanh tiến trình tải lên với phương pháp này.


7
Sử dụng git thực sự là câu trả lời đúng. Những gì bạn đang tìm kiếm ở đây là một cách giải quyết cho thực hành kém. Điều gì nếu bạn làm điều gì đó sai và phá vỡ mọi thứ? Git cung cấp cho bạn rollback.
TRiG

1
Tôi không đồng ý. Điều gì sẽ xảy ra nếu bạn chỉ muốn thay đổi một dòng của một tệp văn bản lớn không phải là một phần của repo? Điều gì xảy ra nếu tổ chức của bạn không cho phép hoặc hỗ trợ git? Trường hợp sử dụng của tôi là tôi đang thực hiện hàng trăm thay đổi nhỏ đối với các tệp được lưu trữ từ xa và phải được chỉnh sửa "trực tiếp" và "tại chỗ".
WackGet

Tôi không có thời gian để kiểm tra một tệp lớn ngay bây giờ, vì vậy hãy đăng bài này dưới dạng nhận xét, không phải là câu trả lời, nhưng hãy xem Beyond Beyond - đó là tệp khác biệt GUI đa nền tảng có thể chỉnh sửa qua FTP / SFTP và bạn có thể chọn những dòng để đồng bộ hóa qua. Có lẽ vẫn không lý tưởng, nhưng hoàn toàn khả thi. Họ cũng có bản dùng thử miễn phí.
Nick

Câu trả lời:


7

Vim có một plugin tích hợp có tên netrw, cho phép Vim chỉnh sửa các tệp từ xa. Rsync là một trong những giao thức có thể sử dụng:

:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path

Tất nhiên, nếu bạn có quyền truy cập SSH vào máy từ xa và Vim được cài đặt trên nó, có thể đơn giản hơn là chỉ sử dụng Vim từ xa. Nano, Emacs và các trình soạn thảo khác có giao diện dòng lệnh cũng là các tùy chọn trong trường hợp đó. Tuy nhiên, tùy thuộc vào mức độ kết nối của bạn tệ như thế nào, đây có thể không phải là một lựa chọn dễ chịu.


Tất cả đã nói,

thực hiện hàng trăm thay đổi nhỏ đối với các tệp được lưu trữ từ xa và phải được chỉnh sửa "trực tiếp" và "tại chỗ"

không có hệ thống rollback đáng tin cậy như những gì git có thể cung cấp là bạn và tổ chức của bạn chỉ cầu xin sự đau đớn khi bạn mắc phải những sai lầm không thể tránh khỏi mà rất có thể không được chú ý cho đến khi bạn quên chính xác những gì bạn đã làm.


SSH dường như là câu trả lời rõ ràng nếu máy chủ đang chạy bất kỳ phiên bản Linux nào. Nếu nó chưa chạy trên máy chủ, tôi sẽ nhấn quản trị viên máy chủ để thiết lập.
Charles Burge

Cảm ơn cả hai người; Tôi có quyền truy cập SSH đầy đủ và có thể định cấu hình mọi thứ cần thiết trên máy chủ. Tôi không thể sử dụng Vim từ xa vì độ trễ thường rất cao. Ngoài ra, tôi muốn có thể sử dụng các trình soạn thảo trên máy tính để bàn như Sublime. Tôi nghĩ rằng tôi đã không rõ về cách tôi đang sử dụng ứng dụng khách FTP của mình vào lúc này - về cơ bản, tôi mở một tệp từ xa bằng WinSCP, bắt đầu chỉnh sửa nó và khi tôi nhấn lưu, WinSCP sẽ tự động tải lên lại tệp. Tôi thực sự không tải nó xuống bất kỳ thư mục cố định nào trên máy tính của mình - mọi thứ đều được thực hiện thông qua thư mục tạm thời của WinSCP. Tôi sẽ chỉnh sửa câu hỏi của tôi và làm rõ.
WackGet

@WackGet Vim cũng hoạt động trên máy tính để bàn, nó được gọi là GVim. Cream là một cấu hình cụ thể của Vim được cho là tương đối dễ dàng đối với những người sử dụng nhiều hơn cho các biên tập viên như Sublime, Notepad hoặc Textmate. Những gì bạn đang làm với WinSCP về cơ bản là cách netrw hoạt động. Nó tải xuống một vị trí tạm thời, chờ bạn lưu, sau đó ghi lại vào máy chủ từ xa, sử dụng bất kỳ giao thức nào bạn chỉ định.
8bittree

@ 8bittree Cảm ơn, điều này chắc chắn sẽ có ích. Tôi sẽ không đánh dấu câu này là câu trả lời cho câu hỏi ban đầu của mình vì nó giới hạn bạn sử dụng plugin dựa trên Vim. Nếu ai đó có thể thực hiện chuyển delta giống như netrw vào máy khách FTP hoặc FTP, thì điều đó sẽ hoàn hảo. Hiện tại tôi chưa tìm thấy cái này nhưng tôi hy vọng nó tồn tại.
WackGet

1

Beyond So sánh là một công cụ khác có thể so sánh và hợp nhất các thư mục và tệp; Máy chủ FTP cũng được hỗ trợ và có thể được xử lý như một thư mục cục bộ. Nó là độc quyền, giấy phép trọn đời cho một lần cài đặt có giá 30 USD cho phiên bản tiêu chuẩn (với FTP) hoặc 60 USD cho phiên bản chuyên nghiệp (với SFTP). Nó chạy trên Windows, Mac OS và Linux. Cá nhân tôi phát triển trang web của mình trên máy tính ở nhà và tải các thay đổi lên máy chủ Web khi tôi thấy vui. Tôi thực hiện các thay đổi bằng tay với Beyond So sánh nhưng điều này cũng có thể được tự động hóa. Bạn có thể dùng thử và xem nếu nó chỉ tải lên các tệp hoàn chỉnh hoặc các thay đổi; Tôi không chắc chắn về điều đó.


Ngoài so sánh là tuyệt vời - hoàn hảo nếu bạn không có quyền truy cập SSH, nhưng bạn vẫn cần đảm bảo các tệp được đồng bộ hóa trên máy chủ từ xa (hỗ trợ FTP qua SSL)
Sam Heuck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.