Yanlış dalda çalışmaktan nasıl kaçınıyorsunuz?


27

Dikkatli olmak genellikle sorunları önlemek için yeterlidir, ancak bazen üzerinde çalıştığım şubeyi iki kez kontrol etmem gerekir ( örneğin, "hmm ... şubedeyim dev, değil mi?") Rasgele bir kaynak kontrol yolunu kontrol ederek dosya.

Daha kolay bir yol ararken, çözüm dosyalarını buna göre adlandırmayı düşündüm ( örneğin MySolution_Dev.sln ), ancak her dalda farklı dosya adlarıyla çözüm dosyalarını birleştiremiyorum.

Bu o kadar büyük bir şey değil, ancak doğru dalda olduğunuzdan emin olmak için kullandığınız herhangi bir yöntem veya "küçük hileler" var mı? Visual Studio 2010'u TFS 2008 ile kullanıyorum.


2
Bu, bir VS 2010 Eklentisi için iyi bir aday gibi göründüğü için, bir çeşit yapılandırılabilir görsel ipucunun dalı belirtmesini sağlar. Belki Solution Explorer'ın arka planını kullanıcı ayarlarına göre renklendirebilirim (Dev için yeşil, QA için sarı ve Prod için kırmızı).
Jesse C. Dilimleyici

Güzel bir fikir, VS başlık çubuğundaki bir gösterge bile yardımcı olabilir.
henginy

1
Bunun oldukça etkili olması gerektiğini söyleyebilirim. Benim bash
istemimi git dalımı

Mu TFS değil bir şey eşdeğer git statusya hg status?

TFS işlemleri için VS kullanıcı arabirimini kullanıyorum, bu yüzden gerçekten bir fikrim yok.
henginy

Yanıtlar:


16

Bu http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6 kullanıyorum

Başlığınızı örneğin günceller:

Geliştirme \ myproject

veya

Ana \ myproject

veya

Release \ myproject

Umarım yardımcı olur


Bu gibi görünüyor, ben bir deneyeceğim ..
henginy

Bu eklentiyi tam olarak bu amaç için kullanıyorum. Aslında, bağlantıyı yayınlamak üzereydim, şu ynnok'un zaten olduğunu gördüm.
Bobson,

1
Hangi dalda olduğumu görebildiğim için bunu kullandım. Gerçekten harika!!!
Piotr Kula

Evet, gerçekten çok uygun!
henginy

16

Çalışma dizinlerini farklı şekilde adlandırın. Yani, projeniz "MY_PROJECT" olarak adlandırılmışsa, her dal için farklı bir çalışma dizini oluşturun. "Dev" adında bir dal varsa, gövde için bir dizine ve dev için bir dizine ihtiyacınız olacaktır:

~/henginy/projects/MY_PROJECT-trunk
~/henginy/projects/MY_PROJECT-dev

Aslında çalışan dizinler farklı adlandırılmıştır. Ancak zaten açık olan bir Visual Studio ile (örneğin bir kahve molası verdikten ve masama döndükten sonra) dizini görebilmek için bir dosyanın yolunu kontrol etmem gerekiyor. Sanırım en basit yol bu ve bundan kaçış yok mu?
henginy

2
@ henginy Bu iyi bir açıklama. Bunu belirlemek için Visual Studio'da açık bir dosyanın sekmesinin üzerine geldim. Kökün "-dev" veya "-trunk" olup olmadığını belirleyebileceğim tam dosya sistemi yolunun bir araç ipucunu görüntüler. Bunu dene ve senin için işe yarayıp yaramadığına bak.
Matthew Rodatus

1
Evet, bu tam olarak nasıl "rastgele bir dosyanın kaynak kontrol yolunu kontrol ettim" ve daha hızlı bir yol bulmaya çalışıyorum :)
henginy

@ henginy Ah, doğru. Bunu OP'de söyledin. Kafamın üstünden daha iyi bir yol bilmiyorum. Durumunuzu hiç geliştirmedim gibi geliyor. :-(
Matthew Rodatus 14:11

Sorumu daha iyi açıklamalıydım. Yardımın için teşekkürler!
henginy

8

Genel bir dev ya da ana dalda çalışmıyorum.

HER ZAMAN özellik dallarında çalışırım. Bir özellik yapıldığında, bu adımları takip ediyorum.

  1. Kaynak Kontrol Gezgini'ni açın.
  2. Dev'den geçerli özellik dalına birleştirilir.
  3. Çatışmaları düzeltin ve her şeyin hala çalıştığından emin olun.
  4. Tekrar kontrol et. Dev dalına birleştirme özelliği.
  5. Dev çözümü açın.
  6. Dev şubesine bakıyorum.
  7. Dev çözümünü kapatın.
  8. CI'nin kurup dağıtmasına izin verin.

Dev şubesini bir seferde sadece birkaç dakika açıp hemen kapatıyorum.


7

Her dalda boş bir dosya oluşturabilirsiniz, örneğin, bagajda THIS_IS_TRUNK.txt ve DEV'de THIS_IS_DEV.txt.


2
Bu gerçekten işe yarayabilir.
henginy

6

(D) VCS çalışmalarımın çoğunu komut satırından yapıyorum. Bulunduğunuz yerin ekranını göstermenizi şiddetle tavsiye ederim. Örneğin, Git deposundayken istemim şu şekilde görünüyor:

[BranchName]RepoTop/path/to/current/wd >>

Ve eğer depo şu anda kirliyse (kabul edilmeyen değişiklikler):

[BranchName!!]RepoTop/path/to/current/wd >>

Ayrıca arka plana, prod'a giriş yaparsanız kırmızı gibi bir şey ayarlanmış olur. Basit görsel bildirimleri benim için süper etkili buluyorum.

Bunu en çok bilgisayarınıza geri döndükten sonra gördüğünüzden bahsettiniz. Şu anki odağım (dal, böcek #, özellik) klavyeme sıkışıp kaldığımı belirten bir not buldum, en son yaptığım şeyi yeniden yaratmak yerine hızlı bir şekilde işe dönmeme izin vermede süper etkili olmak için .


4

Bu konuda yardımcı olabilecek TFS Solution Info adlı ücretsiz bir Visual Studio eklentisi var . Geçerli dalı ve çalışma alanını, istediğiniz yere yerleştirebileceğiniz / sabitleyebileceğiniz küçük bir pencerede gösterir.


Muhteşem görünüyorsun, ancak VS2012'yi destekliyor
Piotr Kula,

3

VSCommands uzantısını kullanıyorum (Visual Studio 2012 ile, ancak 2010 sürümü var) ve şube adını ekranın sol üst köşesine ve çözüm gezginine kolayca yerleştiriyor.

Ürüne hiçbir şekilde bağlı değil, sadece mutlu bir kullanıcı.


1
Ne yazık ki gerekli olmayabilir tüm ekstra şeyler için ödemek zorunda, kötü kötü görünüyor :(
Piotr Kula

2

Yanlış bir dalda çalışmaktan hemen hemen her şeyi tek bir dalda yaparak (bagajda - "kararsız kanal" dallanma stratejisi başına) yapmaktan kaçınırım .

Dalları güncellemeye zorlandığım durumlar oldukça nadirdir - bunlar üretim öncesi ve sonrası hatalardır (eşya aday kodu dallarda izole edilmiştir). Bu düzeltmelerin de bagajda olması gerektiğinden, tipik olarak onları tam olarak bagajda taslaklar, test eder ve doğrularım, sonra prod şubesine taşınırım. Kural olarak taşıma, 1 ila 5 dosyanın dallanması ve denetlenmesi için basit bir kopya içerir.

  • Ayrıca, proje yönetimimin çoğunda müşterileri eskileri yamalamak yerine yeni sürümleri kullanmaya ikna etmeyi tercih ettiği için çok şanslıyım; bu, şubelerdeki güncellemelerin üretim sonrası bölümünü neredeyse ihmal edilebilir düzeyde tutar.

Önceki sürümleri sürdürmemek gerçekten de güzel. Bu durumda, sadece deneme amaçlı bir dal kullanırdım sanırım.
henginy

@henginy Önceki sürümleri hiç korumamama gerekme lüksüne sahip olduğum zamanları hatırlayamıyorum. Bununla birlikte, yönetim tutumu burada büyük bir fark yaratabilir: buna bağlı olarak, örneğin eski şubelerde 1-2 düzeltme / yıl uygulayabilir ya da her zaman bu yarısı ile karışıklık yaratabilir
gnat

1

Özel bir cevap kullandığınız sürüm kontrol yazılımına bağlıdır, ancak üzerinde çalıştığınız şubeyi kolayca görmenizi sağlayan bir komut vardır. Örneğin, Subversion ile svn infobu dalın URL'sini görmek için dizini komut içinde kullanın . Belirli bir dosyayla daha fazla ilgileniyorsanız, şunu da belirtebilirsiniz:

caleb-dev$ svn info foo.c 
Path: foo.c
Name: foo.c
URL: https://svn.mycompany.com/repo/sample/branches/caleb-dev/foo.c
Repository Root: https://svn.mycompany.com/repo/sample
Repository UUID: d62f7aef-3ad2-6098-12a-c16647d854ab
Revision: 1042
Node Kind: file
Schedule: normal
Last Changed Author: caleb
Last Changed Rev: 1031
Last Changed Date: 2011-06-07 15:28:27 -0400 (Tue, 07 Jun 2011)
Text Last Updated: 2011-06-08 03:08:12 -0400 (Wed, 08 Jun 2011)
Checksum: 123456789098765432123456789098

URL’den foo.c kopyasını caleb-dev dalında görebiliyorum.

Bunu çok sık yapmama gerek yok çünkü yerel dizimin şubeyle aynı adı taşıyor. Komut satırı istemime hızlı bir bakış, genellikle doğru dizinde olduğumu ve bu nedenle doğru dalda çalıştığımı doğrulamak için yeterlidir.


1

Burada zaten çok sayıda cevap var, ancak çalıştığım yerdeki basit çözüme değecek hiçbir şey yok: her dal için, dev ortamı içeren yeni bir VM oluşturun ve uygun daldan kontrol edin. Bunu sadece bir kez yapmanız ve doğru bir şekilde yapmanız gerekir ve ardından şubeleri değiştirmek için VM'leri değiştirirsiniz.

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.