Yamalar nasıl bölünür ve düzenlenir?


10

Bazen büyük bir yamayı daha küçük (ayrık) olanlara ayırmam gerekir, örneğin dahil edilen her ayrı özellik için.

Genellikle standart vim yank / dd komutları ve bölünmüş pencere geçişi ile yaparım.

Ancak bu tür düzenlemelere yardımcı olacak bazı araçlar / vim-püf noktaları var mı?

Örneğin aşağıdaki gibi komutlar için destek: sonraki 3 tam parçayı sağ açılan yama dosyasına taşı



1
BTW, insanlar nasıl soruya cevap veriyorlar, ancak bunu oy vermek için yeterince yararlı / net bulmuyorlar mı?!? ;)
maxschlepzig

Yanıtlar:


7

Patchutils'e bir göz atmak isteyebilirsiniz [1]. Vim kısmı için, yamalarda gezinmeye yardımcı olan küçük bir vim eklentisi yazdım: diff_navigator [2].

[1] http://cyberelk.net/tim/software/patchutils/

[2] http://www.vim.org/scripts/script.php?script_id=2361


1
diff_navigatorURL görünüşe göre vim.org/scripts/script.php?script_id=2361 Emacs benzer özelliklere sahip Ediff ve SMerge modları
Riccardo Murri

2
Daha kapsamlı hale getirmek için cevabınızı uzatabilir misiniz? Büyük bir yamayı ayrık olanlara bölmek için ayarlanan patchutils'den hangi yardımcı programın kullanılacağını gösteren bir örnek eklemek harika olurdu ...
maxschlepzig

5

Biraz konu dışı, sanırım ama yine de faydalı olduğunu düşünüyorum.

Gelişiminizi yapmak için git'i kullanırsanız, tüm değişikliklerinizi kolayca her biri bir özellik içeren daha küçük "parçalara" bölebilirsiniz. Her özellik için bir taahhüt ile sonuçlanır git-format-patchve yamalar oluşturmak (ve hatta imzalamak ve düzgün bir şekilde atmak) için git's kullanabilirsiniz , bunu nasıl yapacağımı burada özetledim


3

Benim Suse böyle splitdiffçalışır util vardır:

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002

0

Sen kullanabilirsiniz Bu küçük (ya dosya veya her iri parça başına) parçalar ve büyük yama bölmek o zaman sonra birleştirme gelen combinediff kullanmanız gerekiyorsa patchutils sözü edilen paketin Petr Uzel cevap

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.