"Delta yüklemelerine" izin veren FTP veya FTP benzeri bir istemci var mı - yani yalnızca dosyanın değiştirilen bölümlerinin yüklenmesi?


9

FTP ( web geliştirme için CSS dosyaları) üzerinden oldukça büyük metin dosyalarında sık sık küçük değişiklikler yapıyorum ve internet bağlantım çok yavaş olduğu için çok acı verici bir süreç.

Dosyanın yalnızca bir karakterini değiştirsem bile, tüm dosya sunucuya yeniden yüklenirken oturmak ve hatırı sayılır bir süre beklemek zorundayım.

Yerel bilgisayarımda uzaktan barındırılan dosyaları düzenlememin bir yolu var mı ve dosyayı kaydettiğimde, yalnızca değişen bölümleri karşıya yüklüyor musunuz?

Edit: Sanırım şu anda FTP istemcimi nasıl kullandığım konusunda net değilim. Temelde, uzak bir dosyayı WinSCP kullanarak SFTP üzerinden açıyorum. WinSCP bir tmp klasörüne kaydeder, Sublime Text'i başlatır ve düzenlemeye başlarım. Kaydet'e bastığımda, WinSCP dosyayı otomatik olarak yeniden yükler. Asla dosyayı bilgisayarıma kalıcı olarak kaydetmiyorum - her şey WinSCP'nin geçici klasörü üzerinden yapılıyor. Bu yüzden bu "vur ve kaç" tipinde kullanılabilecek bir çözüm arıyorum.


Önceki Tartışma

Daha önce açıkladığım gibi git gibi bir şey kullanılması önerildi ServerFault bu soruyu yayınladı :

Git veya benzeri bir sürüm oluşturma aracıyla, dosyayı her kaydettiğimde bir taahhütte bulunmam gerekirdi, değil mi? Bu otomatik olarak yapılabilir olsa bile (yani, Sublime Text save dosyasında Ctrl-S yapan ve aynı anda git push yürüten bir makro varsa), saatte 50 - 100 küçük düzenleme yapabilirim; muhakkak spam gönderilmiş bir taahhüt günlüğü ile sonuçlanır mıyım? Ayrıca git çözümü, git repo'nun bir parçası olarak düzenlediğim dosyaya bağlı olduğu için esnek değildir.

Şimdiye kadar düşünebildiğim tek çözüm, rsync kullanan bir tür saldırıya uğramış süreçtir, ancak o zaman bile, çok fiddly:

  1. Bilgisayarıma ihtiyacım olan dosyaları indiriyorum (FTP / rsync / her neyse).
  2. Sublime Text'de (örneğin) bir dosya açıyorum ve düzenlemeler yapmaya başlıyorum.
  3. Bir arka plan işlemi, dosya değişiklikleri için klasörü izliyor. Bir dosyayı kaydettiğimde, bu işlem anında bir rsync işlemini bilgisayarımdan sunucuya tetikler ve dosyanın değiştirilen kısımlarını aktarır.

Ancak, uzak dosyayı veya dizin yollarını el ile ayarlamam veya belirtmem gerekir, aksi takdirde yerel rsync betiği dosyaları nerede rsync'in bileceğini bilmez, bu nedenle bu yöntem hala oldukça esnek değildir. Bu yöntem rasgele bir dosyaya anında göz atmama, açmamıza ve bir FTP istemcisi gibi kaydetmeme izin vermez.

Bu yöntemle yükleme ilerleme çubuğu gibi görünür bir geri bildirim de yoktur.


7
Git'i kullanmak gerçekten doğru cevaptır. Burada aradığınız şey kötü uygulama için bir çözümdür. Ya yanlış bir şey yapar ve bir şeyleri kırarsanız? Git size geri dönüşler verir.
TRiG

1
Katılmıyorum. Bir repo'nun parçası olmayan büyük bir metin dosyasının tek bir satırını değiştirmek isterseniz ne olur? Kuruluşunuz git'e izin vermez veya desteklemezse ne olur? Benim kullanım durumum, uzaktan barındırılan ve "canlı" ve "yerinde" düzenlenmesi gereken dosyalarda yüzlerce küçük değişiklik yapmam.
WackGet

Şu anda büyük bir dosyayı test etmek için zamanım yok, bu yüzden bunu bir yorum olarak değil, bir cevap olarak gönderiyorum, ancak Karşılaştırmanın Ötesine bakın - FTP / SFTP üzerinde düzenleyebilen bir platformlar arası GUI diff dosyasıdır ve hangi satırların senkronize edileceğini seçin. Muhtemelen hala ideal değil, uygulanabilir. Onlar da ücretsiz deneme sürümü var.
Nick

Yanıtlar:


7

Vim, Vim'in uzak dosyaları düzenlemesine izin veren netrw adlı yerleşik bir eklentiye sahiptir. Rsync kullanabileceği protokollerden biridir:

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

Tabii ki, uzak makineye SSH erişiminiz varsa ve üzerinde Vim yüklüyse, Vim'i uzaktan kullanmak daha basit olabilir. Nano, Emacs ve komut satırı arabirimli diğer editörler de bu durumda seçenekler. Bağlantınızın ne kadar kötü olduğuna bağlı olarak, bu hoş bir seçenek olmayabilir.


Hepsi dedi ki,

uzaktan barındırılan ve "canlı" ve "yerinde" düzenlenmesi gereken dosyalarda yüzlerce küçük değişiklik yapma

Git'in sağlayabileceği gibi güvenilir bir geri alma sistemi olmadan, siz ve kuruluşunuz, tam olarak ne yaptığınızı unutuncaya kadar fark edilmeyebilecek kaçınılmaz hataları yaptığınızda acı için yalvarıyorsunuz.


Sunucu Linux'un herhangi bir sürümünü çalıştırıyorsa SSH açık bir cevap gibi görünüyor. Zaten sunucuda çalışmıyorsa, bunu ayarlamak için sunucu yöneticisine basıyordum.
Charles Burge

İkinize de teşekkürler; Tam SSH erişimim var ve sunucuda gerekli olan her şeyi yapılandırabilirim. Vim'i uzaktan kullanamıyorum çünkü gecikme süresi genellikle çok yüksek. Ayrıca Sublime gibi masaüstü editörlerini de kullanmak istiyorum. Sanırım şu anda FTP istemcimi nasıl kullandığımdan emin değilim - temel olarak, WinSCP kullanarak uzak bir dosyayı açıyorum, düzenlemeye başlıyorum ve kaydet'e bastığımda WinSCP dosyayı otomatik olarak yeniden yüklüyor. Aslında bilgisayarımdaki herhangi bir kalıcı dizine indirmiyorum - her şey WinSCP'nin geçici klasörü üzerinden yapılıyor. Sorumu düzenleyeceğim ve açıklığa kavuşacağım.
WackGet

@WackGet Vim masaüstünde de çalışır, buna GVim denir. Krem , Sublime, Notepad veya Textmate gibi editörlere daha çok alışanlar için nispeten kolay olması gereken belirli bir Vim yapılandırmasıdır. WinSCP ile yaptığınız şey aslında netrw'nin nasıl çalıştığıdır. Geçici bir konuma indirir, kaydetmenizi bekler, sonra belirttiğiniz protokolü kullanarak uzak sunucuya geri yazar.
8bittree

@ 8bittree Teşekkürler, bu kesinlikle faydalı olacaktır. Bunu orijinal sorumun cevabı olarak işaretlemeyeceğim çünkü sizi Vim tabanlı eklentiyi kullanmaya sınırlıyor. Birisi bir FTP veya FTP benzeri istemciye netrw benzeri delta aktarımlarını uygulayabilirse, bu mükemmel olurdu. Şu anda henüz bulamadım ama umarım var.
WackGet

1

Beyond Compare , klasörleri ve dosyaları karşılaştırabilen ve birleştirebilen farklı bir araçtır; FTP sunucuları da desteklenir ve yerel bir klasör gibi kullanılabilir. Tescilli, bir kurulum için ömür boyu lisans standart sürüm (FTP ile) için 30 USD veya profesyonel sürüm (SFTP ile) için 60 USD'dir. Windows, Mac OS ve Linux üzerinde çalışır. Şahsen web sitemi ev bilgisayarımda geliştiriyorum ve mutlu olduğumda değişiklikleri Web sunucuma yüklüyorum. Ben Beyond Compare ile değişiklikleri elle geçiyorum ama bu da otomatik olabilir. Bunu deneyebilir ve yalnızca tam dosyaları mı yoksa değişiklik yığınlarını mı yüklediğini görebilirsiniz; Ben bu konuda emin değilim.


Karşılaştırmanın ötesinde harika - SSH erişiminiz yoksa mükemmel, ancak yine de dosyaların uzak bir sunucuda senkronize edildiğinden emin olmanız gerekir (SSL üzerinden FTP desteklenir)
Sam Heuck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.