Bagaimana Anda menghindari bekerja di cabang yang salah?

27

Berhati-hati biasanya cukup untuk mencegah masalah, tetapi kadang-kadang saya perlu memeriksa ulang cabang yang sedang saya kerjakan ( misalnya "hmm ... saya di devcabang, kan?") Dengan memeriksa jalur kontrol sumber secara acak mengajukan.

Dalam mencari cara yang lebih mudah, saya berpikir untuk memberi nama file solusi sesuai ( misalnya MySolution_Dev.sln ) tetapi dengan nama file yang berbeda di setiap cabang, saya tidak dapat menggabungkan file solusi.

Ini bukan masalah besar tetapi apakah ada metode atau "trik kecil" yang Anda gunakan untuk memastikan Anda berada di cabang yang benar? Saya menggunakan Visual Studio 2010 dengan TFS 2008.

henginy
sumber
2
Ini terdengar seperti kandidat yang baik untuk Ekstensi VS 2010 untuk ditulis yang memungkinkan semacam isyarat visual yang dapat dikonfigurasi untuk menunjukkan cabang. Mungkin mewarnai latar belakang Solution Explorer sesuai pengaturan pengguna (saya akan melakukan hijau untuk Dev, kuning untuk QA dan merah untuk Prod).
Jesse C. Slicer
Ide bagus, bahkan indikator pada bilah judul VS akan membantu.
henginy
1
Saya akan mengatakan itu harus cukup efektif. Saya telah mengatur bash prompt saya untuk memasukkan cabang git saya dan apakah file sumber bersih atau jika mereka memerlukan checkin
Daenyth
Apakah TFS tidak memiliki sesuatu yang setara dengan git statusatau hg status?
Saya menggunakan antarmuka pengguna VS untuk operasi TFS, jadi saya tidak punya ide.
henginy

Jawaban:

16

Saya menggunakan http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6 ini

Perbarui judul Anda misalnya:

Pengembangan \ myproject

atau

Main \ myproject

atau

Lepaskan \ myproject

Semoga ini bisa membantu

ynnok
sumber
Itu sepertinya melakukannya, saya akan mencobanya ..
henginy
Saya menggunakan ekstensi ini untuk tujuan ini. Sebenarnya, saya akan memposting tautan itu, ketika saya melihat bahwa ynnok sudah memilikinya.
Bobson
1
Saya akhirnya menggunakan yang ini karena saya bisa melihatnya di judul di cabang mana saya. Sangat mengagumkan !!!
Piotr Kula
Ya, ini memang sangat nyaman!
henginy
16

Beri nama direktori kerja secara berbeda. Yaitu, jika proyek Anda berjudul "MY_PROJECT," buat direktori kerja yang berbeda untuk setiap cabang. Jika ada satu cabang bernama "dev," maka Anda akan memerlukan direktori untuk trunk dan direktori untuk dev, seperti ini:

~/henginy/projects/MY_PROJECT-trunk
~/henginy/projects/MY_PROJECT-dev
Matthew Rodatus
sumber
Sebenarnya direktori kerja diberi nama berbeda. Tetapi dengan Visual Studio yang sudah terbuka, (misalnya setelah saya mengambil rehat kopi dan kembali ke meja saya) saya harus memeriksa jalur file untuk melihat direktori. Jadi saya kira itu cara paling sederhana dan tidak ada jalan keluar dari itu?
henginy
2
@henginy Itu klarifikasi yang bagus. Untuk menentukan itu di Visual Studio, saya mengarahkan kursor ke tab file yang terbuka. Ini akan menampilkan tooltip dari path sistem file lengkap, dari mana saya dapat menentukan apakah root adalah "-dev" atau "-trunk." Coba itu dan lihat apakah itu cocok untuk Anda.
Matius Rodatus
1
Ya, itulah tepatnya bagaimana saya "memeriksa jalur kontrol sumber dari file acak", dan saya mencoba menemukan cara yang lebih cepat :)
henginy
@ Chenginy Oh, benar. Anda mengatakan itu di OP. Saya tidak tahu cara yang lebih baik dari atas kepala saya. Kedengarannya aku sama sekali belum memperbaiki situasimu. :-(
Matthew Rodatus
Saya harus menjelaskan hal itu dengan lebih baik dalam pertanyaan saya. Terima kasih untuk bantuannya!
henginy
8

Saya tidak bekerja di cabang generik dev atau trunk.

SAYA SELALU bekerja di cabang fitur. Ketika fitur selesai, saya mengikuti langkah-langkah ini.

  1. Open Source Control Explorer.
  2. Gabungkan dari dev ke cabang fitur saat ini.
  3. Perbaiki setiap konflik dan pastikan semuanya masih berfungsi.
  4. Periksa lagi. Gabungkan fitur menjadi cabang dev.
  5. Solusi dev terbuka.
  6. Cabang pengembang checkin.
  7. Tutup solusi dev.
  8. Biarkan CI membangun dan menggunakan.

Saya hanya membuka cabang dev selama beberapa menit pada suatu waktu dan segera menutupnya.

CaffGeek
sumber
7

Anda dapat membuat file kosong di setiap cabang, misalnya THIS_IS_TRUNK.txt di trunk, dan THIS_IS_DEV.txt di DEV.

Robstel
sumber
2
Itu mungkin benar-benar berfungsi..Terutama dengan garis bawah di depan nama file untuk memindahkannya ke dalam solusi explorer.
henginy
6

Saya melakukan banyak pekerjaan (D) VCS saya dari baris perintah. Saya sangat merekomendasikan memiliki tampilan prompt Anda di mana Anda berada. Sebagai contoh, prompt saya ketika dalam repo Git terlihat seperti (saya juga melakukan ini untuk SVN):

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

Dan jika repo saat ini kotor (perubahan tidak dikomit):

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

Saya juga memiliki latar belakang diatur ke merah jika login ke prod, hal-hal seperti itu. Saya menemukan notifikasi visual sederhana menjadi sangat efektif bagi saya.

Anda menyebutkan bahwa Anda paling sering melihat ini setelah kembali ke komputer Anda. Saya menemukan catatan posting itu, dengan fokus saya saat ini (cabang, bug #, fitur) menempel pada keyboard saya ketika saya pergi, untuk menjadi sangat efektif dalam memungkinkan saya untuk kembali bekerja dengan cepat, daripada menciptakan kembali apa pun yang saya lakukan lalu .

mitchellhislop
sumber
4

Ada ekstensi Visual Studio gratis yang disebut Info Solusi TFS yang dapat membantu dengan ini. Ini menunjukkan kepada Anda cabang dan ruang kerja saat ini di jendela kecil yang dapat Anda letakkan / sematkan di mana pun Anda inginkan.

Glenn Arndt
sumber
Terlihat luar biasa tetapi mendukung VS2012
Piotr Kula
3

Saya telah menggunakan ekstensi VSCommands (dengan Visual Studio 2012, tetapi ada versi 2010) dan itu dengan mudah menempatkan nama cabang di sudut kiri atas layar serta menjadi solusi explorer.

Tidak berafiliasi dengan produk dengan cara apa pun, hanya pengguna yang bahagia.

R0MANARMI
sumber
1
Kelihatannya sangat buruk, Anda harus membayar untuk semua barang tambahan yang mungkin tidak diperlukan :(
Piotr Kula
2

Saya menghindari bekerja di cabang yang salah dengan melakukan hampir semua hal dalam satu cabang (dalam batang - menurut strategi percabangan "batang tidak stabil" ).

Kasus-kasus ketika saya dipaksa untuk memperbarui cabang sangat jarang - ini adalah perbaikan bug pra-dan pasca-produksi (kode kandidat kandidat diisolasi di cabang-cabang). Karena perbaikan ini juga harus di bagasi, saya biasanya membuat konsep, menguji dan memverifikasi mereka di sana di bagasi, kemudian port ke cabang prod. Porting sebagai aturan hanya melibatkan salinan langsung dari 1 hingga 5 file ke cabang dan membangun pemeriksaan.

  • Saya juga agak beruntung bahwa di sebagian besar proyek manajemen saya lebih suka meyakinkan pelanggan untuk menggunakan rilis yang lebih baru daripada menambal rilis yang lama - ini membuat bagian pasca-produksi dari pembaruan di cabang menjadi minimum yang hampir dapat diabaikan.
agas
sumber
Memang menyenangkan tidak harus mempertahankan rilis sebelumnya. Dalam hal ini saya hanya menggunakan cabang untuk tujuan eksperimental.
henginy
@henginy Saya tidak bisa mengingat kasus ketika saya memiliki kemewahan tidak harus mempertahankan rilis sebelumnya sama sekali. Namun, sikap manajemen dapat membuat perbedaan besar di sini: tergantung padanya orang dapat misalnya mengimplementasikan 1-2 hotfix / tahun di cabang yang lebih lama atau mengacaukan dengan separuh waktu
agas
1

Jawaban spesifik tergantung pada perangkat lunak kontrol versi yang Anda gunakan, tetapi biasanya ada perintah yang memungkinkan Anda dengan mudah melihat cabang yang sedang Anda kerjakan. Misalnya, dengan Subversion, gunakan svn infoperintah di direktori untuk melihat URL untuk cabang itu. Jika Anda lebih tertarik pada file tertentu, Anda dapat menentukannya juga:

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

Dari URL, saya dapat melihat bahwa salinan foo.c saya ada di cabang caleb-dev.

Saya tidak perlu melakukannya terlalu sering karena direktori lokal saya memiliki nama yang sama dengan cabang. Melihat cepat pada command line prompt saya biasanya cukup untuk mengonfirmasi bahwa saya berada di direktori yang benar, dan karenanya bekerja di cabang yang benar.

Caleb
sumber
1

Sudah banyak jawaban di sini, tetapi tidak ada yang menyentuh pada solusi sederhana yang kami miliki di tempat saya bekerja: untuk setiap cabang, buat VM baru yang berisi lingkungan dev, dan periksa dari cabang yang tepat. Anda hanya perlu melakukan itu dan melakukannya dengan benar sekali, dan kemudian Anda cukup mengganti VMs untuk beralih cabang.

Mason Wheeler
sumber