Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen aeipass komutudur.
Program:
ADI
aegis entegre geçişi - bir değişiklik entegrasyonunu geçirin
SİNOPSİS
siper -Entegre_Pass [ seçenek... ]
siper -Entegre_Pass -Liste [ seçenek... ]
siper -Entegre_Pass -Yardım
TANIM
The siper -Entegre_Pass komutu aegis'e bir değişikliğin geçtiğini bildirmek için kullanılır
entegrasyon. Değişiklik şu andan itibaren ileri düzeydedir: olmak entegre devlete tamamlandı
durum. boxwid = 1 aşağı kutu "olmak" "entegre" ok "integre" ljust " pass" ljust
"tamamlandı" kutusu
Bu komut dosya geçmişlerini günceller, böylece gelecekte aecp(1) komutlar çıkarılabilir
geçmişten önceki dosya sürümleri ve böylece gelecek aED(1) komutlar birleştirilebilir
tarih dosyaları. Geçmiş, kullanılarak güncellenir. History_create_command ve
History_put_command proje yapılandırma dosyasının alanları (bkz. aepconf(5) daha fazlası için
bilgi). Bu geçmişlerden biri gerçekleşirse entegre geçişi bir hatayla iptal edilir
komutlar başarısız olmalı, Evliliğin bona fide bir evlilik olduğu şu belgeler ile ispatlanabilir: disk alanının tükenmesi nedeniyle. Eğer bu gerçekleşirse,
değişiklik ortada kalacak olmak entegre durum ve entegrasyon dizini
değiştirilmemiş.
Geçmiş güncellendikten sonra entegrasyon dizini temel olarak yeniden adlandırılır.
dizin ve eski temel dizin silinir.
Entegre geçiş tamamlandıktan sonra değişiklik artık mevcut kullanıcıya atanmaz.
Tarihçe Tools değiştirmek dosyalar
Birçok tarih aracı (Evliliğin bona fide bir evlilik olduğu şu belgeler ile ispatlanabilir: RCS ve SCCS), dosyanın içeriğini değiştirildiğinde
bağlılık. Bu genellikle belirli "anahtar kelime" dizelerinin kullanılmasını gerektirir ve
genellikle bu davranışı kapatma seçenekleri vardır, ancak sürüm kontrol araçlarına aşina olan kullanıcılar
(yapılandırma yönetim sistemlerinin aksine) bu özellikleri sıklıkla kullanır.
sorun şu ki, eğer taahhüt dosyayı değiştirirse, depodaki kaynak dosya artık yok
artık depodaki nesne dosyasıyla eşleşir. yani geçmiş aracının güvenliği ihlal edildi
havuzun referans bütünlüğü. Varsayılan olarak, aşağıdaki durumlarda önemli bir hata verilir:
dosya check-in sırasında değiştirilir, ancak bu bir uyarıya veya hatta
tamamen görmezden gelindi; gör History_put_trashes_file alanı aepconf(5) daha fazlası için
bilgiler.
fileto Değişiklik Zamanlar
Entegrasyonun başlangıcından bu yana değiştirilen tüm dosyaların değişiklik süreleri (bkz.
ayb(1) daha fazla bilgi için) entegre geçişin başlangıcından bu yana olacak şekilde güncellenmiştir.
Değişiklik zamanlarının sırası korunacak ancak zaman aralığı
mümkün olan en büyük ölçüde sıkıştırılmıştır. Bu, daha sonraki gelişimin garanti altına alınmasını sağlar.
derlemeler temel dosyaların değiştiğini fark edecektir.
Entegrasyonda tamamı farklı zaman damgalarına sahip çok sayıda yeni dosya varsa bunu unutmayın.
dizin ve farklı zaman damgalarına sahip dosyaların sayısı,
entegre geçiş komutunun başlangıcından birkaç saniye sonra, Aegis'in dosyayı ayarlaması gerekebilir
değişiklik zamanları geleceğe aktarılır.
The build_time_adjust proje alanı yapılandırma dosyası Aegis'in bu konudaki davranışını kontrol eder
dava. (Görmek aepconf(5) daha fazla bilgi için.) Üç ayar vardır:
ayarlama_ve_sleep
Varsayılan olan bu ayar, dosya dosyalanana kadar Aegis'in uyku moduna geçmesine neden olur.
değişiklik zamanları artık gelecekte olmayacaktır. Bu her ikisini de önler
geliştirme oluşturma sorunları ve entegrasyon oluşturma sorunları; bunların her ikisi de
sonuç olarak "ilginç" dosya değişiklik süreleri ortaya çıkabilir.
yalnızca ayarlama_yalnızca
Aegis, dosya değiştirme sürelerinin şu tarihe kadar uzandığına dair bir uyarı verecektir:
gelecek ama uyumayacağım. Bu, entegrasyon oluşturma sorunlarına neden olabilir,
özellikle kullanıyorsanız bütünleşik(1). Geliştirme yapıları performans gösterebilir
ancak gereksiz yapılar aet -reg yanlış negatifler üretmemelidir.
ayarlama
Bu kesinlikle tavsiye edilmez. Yalnızca çok nadir görülen bazı ürünler için sağlanmaktadır
durumlar. Bu ayar Aegis'in dosya değişikliğini ayarlamamasına neden olur
kez. Bunun çok üzücü yan etkileri olabilir, özellikle de
entegrasyon yapısı şuydu: önce bir veya daha fazla geliştirme yapısı; en yaygın olanı
Belirti, gelişimin her zaman yeniden bağlanmasına neden olmamasıdır.
gerekli yürütülebilir dosyalar ve aet -reg yanlış negatifler verebilir. Bu şiddetle
bu ayarı kullanmamanız önerilir.
Eğer kullanıyorsanız pişirmek(1), bkz. zamanı geri ayarlama zaman aralığının nasıl sıkıştırılacağına ilişkin bayrak
daha öte. Bu genellikle uykuyu (veya uyarı süresini) önemli ölçüde kısaltır.
Bildirim
Bu komutun başarılı bir şekilde tamamlanmasının ardından, dizin yeniden adlandırılması gerçekleştikten sonra
Veritabanı güncellendikten sonra, entegrasyon_pass_notify_command alanı
eğer ayarlanmışsa proje öznitelikleri çalıştırılır. Görmek aepattr(5) ve aepa(1) daha fazla bilgi için.
Bu komut proje sahibi olarak çalıştırılır.
Bazı derleyiciler mutlak yol adlarını nesne dosyalarına ve yürütülebilir dosyalara gömer. Yeniden adlandırma
Entegrasyon dizininin yeni temel haline gelmesi bu yolları keser. Yukarıdaki
komuta AEGIS_INTEGRATION_DIRECTORY adı verilen bir ortam değişkeni iletilir, böylece
İstenirse uygun sembolik bağlantı yerleştirilebilir.
Bu komut tarafından çalıştırılan diğer komutlar arasında History_create_command, geçmiş_put_‐
komuta ve History_query_command proje alanları yapılandırma dosya. Görmek aepconf(5) için
daha fazla bilgi.
L' TEMEL KİLİT
Taban çizgisi kilidi, taban çizgisinin tutarlı bir durumda kalmasını sağlamak için kullanılır.
taban çizgisindeki dosyaların içeriğini okuması gereken komutların süresi.
Taban çizgisinin tutarlı olmasını gerektiren komutlar (bunlar şunları içerir: aeb(1)
aecp(1) ve aED(1) komutlar) bir temel alın okumak kilit. Bu özel olmayan bir kilit, yani
değişikliklerin eşzamanlı gelişimi engellenmez.
Taban çizgisini değiştiren komut, geçit(1), bir temel alır yazmak kilit. Bu
özel bir kilittir, zorlar geçit(1) aktif taban çizgisi okuması kalmayana kadar engellemek için
kilitlenir.
Yukarıdaki geliştirme komutlarından birinin, bir devam edene kadar engellemesi mümkündür.
siper -Entegre_PASS tamamlar. Proje süresince bu genellikle kısa sürelidir.
tarih güncellendi. Bu komutların tutarlı bir sonuç alması için gecikme önemlidir.
taban çizgisinin görünümü. Başka hiçbir entegrasyon komutu yukarıdaki gelişmeye neden olmaz
engelleme komutları.
Aegis'in şube işlevi kullanımdayken, üzerinde bir okuma (özel olmayan) kilidi alınır.
dal taban çizgisi ve ayrıca "üst" taban çizgilerinin her biri. Ancak, bir temel yazma
(özel) kilit yalnızca dal temel çizgisinde alınır; "üst" taban çizgileri yalnızca
okuma (münhasır olmayan) kilitli.
The Tarihçe kilitlemek
Bir projenin aynı anda birden fazla şubenin aktif olduğu durumlarda, aşağıdakiler mümkündür:
farklı branşlar için bağımsız entegre geçiş komutları çok yakın bir şekilde yayınlanacak
birlikte. Bu özel bir tarih kilitlemek yalnızca sağlamak için entegre geçişle alınır
bir dal bir seferde dosya geçmişini güncelliyor, böylece geçmiş dosyasının engellenmesi
yozlaşma.
TEST KORELASYONLAR
“aegis -Test -SUGgest” komutu, aegis'in uygun regresyon önermesini sağlamak için kullanılabilir.
değişikliğinizdeki kaynak dosyalara dayalı olarak değişikliğinizi test eder. Bu otomatik olarak
Test çabalarını ilgili testlere odaklayarak regresyon testlerinin sayısını azaltır
bir hata eklemediğinizden emin olmak için gereklidir.
Test korelasyonları, "aegis -Integrate_Pass" komutu tarafından oluşturulur.
değişiklikteki her testi, değişiklikteki her kaynak dosyayla ilişkilendirir. Böylece, her
kaynak dosya, geçmişte kendisiyle ilişkilendirilmiş testlerin bir listesini toplar.
Bu, kod kapsamı analizi kadar kesin değildir, ancak makul bir yaklaşımdır.
uygulama.
The aecp(1) ve aenf(1) komutlar, bir değişiklikle dosyaları ilişkilendirmek için kullanılır. Onlar iken
ilişkilendirmeyi aktif olarak gerçekleştirmeyin, bunlar tarafından kullanılan dosyalardır. geçit(1) ve
aet(1) hangi kaynak dosyalarının hangi testlerle ilişkili olduğunu belirlemek için.
test Ilişki doğruluk
Test korelasyonlarının doğru olduğunu ve testlerin eşit olduğunu varsayarsak
fonksiyon alanı boyunca dağıtılmış, daha az olacaktır 1/sayı şans ki bir
ilgili test “aegis -Test -SUGgest” tarafından yürütülmemiştir. numara" emretmek. Küçük
test ağırlığına bir miktar gürültü eklenir, böylece beklenmedik şeyler bazen
test edilir ve aynı testler her seferinde çalıştırılmaz.
Test korelasyon doğruluğu, aşağıdakiler sağlanarak geliştirilebilir:
· Her değişiklik, gereksiz dosya eklemeleri olmadan güçlü bir şekilde odaklanmalıdır. Bu
sahte korelasyonlardan kaçınır.
· Her yeni işlevsellik öğesi, yeni işlevler yerine bireysel bir değişiklikle eklenmelidir.
birkaç birlikte. Bu, testleri işlevsellikle güçlü bir şekilde ilişkilendirir.
· Her bir hata, birden fazla hata yerine tek bir değişiklikle düzeltilmelidir. Bu
testleri işlevsellikle güçlü bir şekilde ilişkilendirir.
· Dosyalar taşınırsa test korelasyonları kaybolur. Bunun nedeni, korelasyonların
adı.
Testlerin kaynak dosyalarla doğru bir şekilde ilişkilendirilmesinin en iyi yolu, bir değişiklik olduğunda
bir test ve tam olarak test edilen işlevsellik ile ilgili dosyaları içerir. Fazla
birçok sahte dosya, test korelasyonlarının kullanışlılığını zayıflatacaktır.
METRİKLER
Aegis, bir değişikliğin dosya özniteliklerinin bir parçası olarak ölçümleri kaydetme yeteneğine sahiptir. Bu
dosyaların çeşitli özelliklerinin sonraki trend analizi için kaydedilmesine veya diğer
kullanır.
Belirli metrikler Aegis tarafından belirlenmez. Entegrasyonun sağlanması bekleniyor
build, değişikliğin kaynak dosyalarının her biri için bir ölçüm dosyası oluşturur. Bu metrikler
dosyalar tarafından belirtilen biçimde olmalıdır aemetrik(5).
Metrik dosyasının adı varsayılan olarak "Dosya,S”, ancak değişebilir,
ayarlamak metrics_filename_pattern proje alanı yapılandırma dosya. Görmek aepconf(5)
daha fazla bilgi için.
Böyle bir metrik dosyası varsa, değişiklikteki her kaynak dosya için okunacak ve
entegre geçiş süresinde hatırlanır. Eğer mevcut değilse, Aegis hiç olmadığını varsayar.
o dosya için ilgili metrikler ve sessizce ilerler; bu bir hata değil.
SEÇENEKLER
Aşağıdaki seçenekler anlaşılmıştır:
-Değişiklik numara
Bu seçenek, bir proje içinde belirli bir değişikliği belirtmek için kullanılabilir. Görmek
siper(1) bu seçeneğin tam açıklaması için.
-Yardım
Bu seçenek, cihazın nasıl kullanılacağı hakkında daha fazla bilgi edinmek için kullanılabilir. siper
programı.
-Liste
Bu seçenek, bu komut için uygun konuların bir listesini elde etmek için kullanılabilir.
Liste beklenenden daha genel olabilir.
-Logging_Logging
Bu seçenek, çıktıların ve hataların otomatik olarak günlüğe kaydedilmesini devre dışı bırakmak için kullanılabilir.
bir dosya. Bu, genellikle birkaç aegis komutu bir kabukta birleştirildiğinde kullanışlıdır.
komut.
-Proje isim
Bu seçenek, ilgilenilen projeyi seçmek için kullanılabilir. hayır olduğunda -Proje
seçeneği belirtilirse, AEGIS_PROJESİ ortam değişkenine danışılır. Eğer
bu mevcut değil, kullanıcının $HOME/.aegisrc dosya varsayılan olarak incelenir
proje alanı (bkz. aeuconf(5) daha fazla bilgi için). Bu yoksa,
kullanıcı yalnızca tek bir projedeki değişiklikler üzerinde çalışırken, proje
name varsayılanları bu proje için. Aksi takdirde, bu bir hatadır.
-Sebep metin
Bu seçenek, tarafından oluşturulan değişiklik geçmişine bir yorum eklemek için kullanılabilir.
bu komut. Kabuktaki boşlukları yalıtmak için tırnak işaretleri kullanmanız gerekecektir.
-TERse
Bu seçenek, listelemelerin minimum minimum ürün üretmesine neden olmak için kullanılabilir.
bilgi. Genellikle kabuk komut dosyaları için kullanışlıdır.
-Ayrıntılı
Bu seçenek, aegis'in daha fazla çıktı üretmesini sağlamak için kullanılabilir. Varsayılan olarak kalkan
yalnızca hatalar üzerinde çıktı üretir. ile kullanıldığında -Liste seçenek bu seçenek
sütun başlıklarının eklenmesine neden olur.
-Beklemek Bu seçenek, aşağıdaki durumlarda Aegis komutlarının erişim kilitlerini beklemesini istemek için kullanılabilir.
hemen elde edilemezler. Kullanıcının varsayılanları lock_wait_preference
belirtilmemişse, bkz. aeuconf(5) daha fazla bilgi için.
-Hayır bekle
Bu seçenek, erişim durumunda Aegis komutlarının önemli bir hata yaymasını istemek için kullanılabilir.
kilitler hemen elde edilemez. Kullanıcının varsayılanları
lock_wait_preference belirtilmemişse, bkz. aeuconf(5) daha fazla bilgi için.
Ayrıca bakınız siper(1) tüm aegis komutlarında ortak olan seçenekler için.
Tüm seçenekler kısaltılabilir; kısaltma büyük harflerle belgelenmiştir,
tüm küçük harfler ve alt çizgiler (_) isteğe bağlıdır. ardışık kullanmalısın
isteğe bağlı harf dizileri.
Tüm seçenekler büyük/küçük harfe duyarlı değildir, bunları büyük harf veya küçük harf olarak yazabilirsiniz veya
ikisinin birleşimi, durum önemli değil.
Örneğin: "-project, "-PROJ" ve "-p" argümanlarının tümü,
-Proje seçenek. "-prj" argümanı anlaşılmayacaktır, çünkü ardışık
isteğe bağlı karakterler sağlanmadı.
Seçenekler ve diğer komut satırı argümanları, komut satırında keyfi olarak karıştırılabilir,
fonksiyon seçicilerden sonra.
GNU uzun seçenek adları anlaşılır. için tüm seçenek adları beri siper uzun,
bu, baştaki fazladan '-'yi yok saymak anlamına gelir. NS "--seçenek=değer"sözleşme aynı zamanda
anladım.
ÖNERİLEN ALIAS
Bu komut için önerilen diğer ad
csh% takma adı aeipass 'aegis -ipass \!* -v'
sh$ aeipass(){aegis -ipass "$@" -v}
HATALAR
Değişikliğin geçerli kullanıcıya atanmaması bir hatadır.
Değişikliğin içinde olmaması bir hatadır. olmak entegre devlet.
Başarılı olunmamışsa bu bir hatadır aegis -Yapı' için komut
entegrasyon.
Başarılı olunmamışsa bu bir hatadır aegis -Ölçek' entegrasyon için komut.
Başarılı olunmamışsa bu bir hatadır aegis -Ölçek -Temel Çizgi' için komut
entegrasyon.
EXIT DURUMU
The siper komut, herhangi bir hata durumunda 1 durumuyla çıkacaktır. NS siper komut sadece
hata yoksa 0 durumuyla çıkın.
ÇEVRE DEĞİŞKENLER
Yerimizi siper(1) bu komutu etkileyebilecek ortam değişkenlerinin bir listesi için. Görmek
aepconf(5) proje yapılandırma dosyası için projeye özel nasıl ayarlanacağı için alan
Aegis tarafından yürütülen tüm komutlar için ortam değişkenleri.
onworks.net hizmetlerini kullanarak aeipass'ı çevrimiçi kullanın