Perforce P4V'deki “Geri Al…” ve “Geri Gönderilen Değişiklik listesi #####” arasındaki fark nedir?


198

Checkin'lerimden birindeki değişiklikleri tersine çevirmek istiyorum. Belirli bir değişiklik listesinin sağ tıklama bağlam menüsünde şu iki seçenek vardır:

  • Geri Alma ...
  • Geri Gönderilen Changelist

Bu ikisi arasındaki fark nedir? Hangi durumlarda birini kullanmalıyım?


3
Bu durumda, 'Geri Gönderilen Changelist' durumum için doğru seçimdi (sadece iade işlemindeki değişiklikleri geri almak istemek). Harika cevaplar için teşekkürler.
Dave Andersen

Yanıtlar:


222

Bu işlemlerin her ikisi de bir dizi dosyayı önceki bir duruma geri yükler ve aslında p4 obliteratekomutu kullanmadan hataları geri almanın daha hızlı ve daha güvenli yoludur (ve bunları kullanmak için yönetici erişimine ihtiyacınız yoktur).

"Geri Alma ..." durumunda, bu herhangi bir sayıda dosya, hatta tüm bir depo olabilir. Belirli bir revizyon, değişiklik listesi veya etikete geri dönmesini söyleyebilirsiniz. Dosyalar, revizyon, değişiklik listesi veya etiketin oluşturulduğu sırada bulundukları duruma geri yüklenir.

"Geri Gönderilen Değişiklik listesi #####" durumunda, geri yükleme işlemi, değişiklik listesi ##### ile gönderilen dosyalarla sınırlıdır. O zamandan beri bu dosyalarda hiçbir değişiklik yapılmadığı takdirde, bu dosyalar, değişiklik listesi gönderilmeden önce bulundukları duruma geri yüklenir. Bu dosyalardan herhangi birinde daha sonra değişiklikler yapılmışsa, Perforce size bu dosyaların artık güncel olmadığını söyleyecektir. Kafa revizyonuyla senkronize etmeniz ve ardından farklılıkları çözmeniz gerekir. Bu şekilde, gerçekte tutmak istediğiniz değişiklikleri yanlışlıkla engellemezsiniz.

Her iki operasyon da eski revizyonları yeni revizyonlar olarak sunarak çalışır. Bir "Geri Alma ..." işlemi gerçekleştirdiğinizde , dosyaları o zamandan beri ne olduğuna bakmaksızın belirli bir zamanda bulundukları duruma geri yüklersiniz . Bir "Geri al ..." işlemi gerçekleştirdiğinizde, o zamandan beri meydana gelen değişiklikleri korurken, belirli bir zamanda yaptığınız değişiklikleri geri almaya çalışıyorsunuz .


18
Ben düşünüyorum "Arka Out Ekleyen Değişiklik listesi #####" olacaktır denemek verilen değişiklik listesinden sonra aynı dosyalara yapılan değişiklikleri tutmak.
Ian Ringrose

1
@Ian: İyi gözlem. Bunu yazdığımda bir hatayı derhal düzeltmeyi düşünüyordum . Genellikle olduğu gibi, bir şeyi daha sonra geri almak istediğinizi fark ederseniz , daha karmaşık hale gelir. Cevabımı geliştirdim.
kuzgun

@IanRingrose Ben sadece bir "geri çek" işlemi yaptım ve gibi görünüyor değil sonradan yapılan değişiklikleri sağlamaya çalışırız. Bir senkronizasyon yapmak ve daha sonra geri çekildikten sonra gönderilen değişiklikleri geri almak için çözmek zorunda kaldım.
gdw2

@ gdw2, Ben bir "Geri Alma" yaptıysanız o zaman sonra "hangi değişiklikleri geri gönderildikten sonra çözmek için çözüm" seçeneği elde olmaz ...
Ian Ringrose

1
Dosyalar bulundukları duruma geri yüklense de, meta veriler değiştirilmez. Başka bir daldan bir entegrasyonu geri almaya çalışmak, meta verilerin zaten entegre olduğunu söylediği için bu entegrasyonu tekrar gerçekleştirmenize izin vermez.
Will Brode

17

Bir değişiklik listesi gönderimini tersine çevirme

Başarılı bir değişiklik listesi gönderimini geri alamazsınız, ancak daha önce gönderilen değişiklikleri iki şekilde geri alabilirsiniz:

Geri alma, bir dosyayı veya dosya kümesini belirtilen bir değişiklik listesine, tarihe veya düzeltmeye geri yükler. Bu noktadan sonra yapılan hiçbir değişiklik korunmaz. Geri çekme, belirli bir değişiklik listesi, tarih veya revizyonda yapılan belirli değişiklikleri kaldırır, ancak kullanıcının sonraki revizyonlarda değişiklik yapmasına izin verir.

Ayrıntılar için lütfen https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html adresine bakın.


8

Backout, değişikliklerimizi geri yükler veya geri alır. Bunu yapmanın yolu, P4'ün yerel çalışma alanımızdaki bir değişiklik listesindeki (varsayılan veya yeni) değişiklikleri geri almasıdır. Daha sonra başka değişiklik listeleri yaptığımız için bu yedek değişiklik değiştiricisini göndermemiz / taahhüt etmemiz gerekir. İkinci bölüm burada önemlidir, çünkü sunucudaki changelist'i otomatik olarak desteklemez, backedout changelistini göndermeliyiz (bunu yaptıktan sonra mantıklıdır, ancak başlangıçta bunu otomatik olarak yaptığını varsayıyordum).

Başkaları tarafından işaret edildiği gibi, Rollback'in daha büyük güçleri vardır - Belirli bir tarih, değişiklik listesi veya bir düzeltme #


4

Geri al ... geri almak için bir klasör seçmenizi ister, yani belirli klasörler üzerinde çalışır ve etiketlere, yer değiştirme listelerine veya tarihlere geri dönebilirsiniz. Geri dönüş, belirli değişiklik listelerindeki dosyalar üzerinde çalışır.


4

Bunu, kullanıcılara Performance changelist'lerini bir yığınla (veri yapılarından) karşılaştırarak açıklarım.

Yedekleme, bir öğeyi yığının herhangi bir yerinden kaldırır.

Geri alma, y ​​öğesinin üst kısmındaki n öğeyi kaldırır.


0

En basit haliyle, fark çokluktan biridir:

  • Geri çekilme tek bir değişiklik listesinden geri çekilir (en sonuncusu olsun ya da olmasın). yani tek bir değiştiriciyi geri alır.
  • Geri alma , önceki bir değiştiriciye ulaşmak için gerektiği kadar değişiklikleri geri alır. yani birden fazla değiştiriciyi geri alır.

Hangisinin hangisi olduğunu unutuyordum ve sonunda birçok kez aramak zorunda kalıyordum. Bu sorunu gidermek için, haddeleme çeşitli rotasyonlar olarak geri sonra umarım gerçeğini hayal geri alma (ve bana) isimli çoğul size yardımcı olacaktır biri olan hatırlıyorum. Geri çekilme bana geri dönmekten 'daha az çoğul' geliyor. Tek bir park yerinden çıktığını düşünün .

Yani, anımsatıcı:

  • Geri alma → çoklu dönüşler
  • Backout bir dışında geri → tek araç park alanı

Umarım bu yardımcı olur!

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.