Perintah penggabungan (Kontrol Versi Team Foundation)
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Perintah menerapkan tf merge
perubahan dari satu cabang ke cabang lain di Team Foundation Version Control (TFVC).
Catatan
Hasil perintah ini tidak tercermin di server Azure DevOps hingga Anda melakukan operasi check-in. Untuk informasi selengkapnya, lihat Mengembangkan kode dan mengelola perubahan yang tertunda.
Prasyarat
Untuk menggunakan merge
perintah, Anda harus mengatur izin Cek keluar ke Izinkan folder ruang kerja yang berisi destination
, dan Anda harus memiliki izin Baca yang diatur ke Izinkan untuk folder ruang kerja yang berisi source
. Untuk informasi selengkapnya, lihat Izin TFVC default.
Sintaks
tf merge [/recursive] [/force] [/candidate] [/discard]
[/version:versionspec] [/lock:none|checkin|checkout] [/preview]
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination
Parameter
Argumen
Argumen
Keterangan
<versionspec>
Menyediakan nilai seperti C2
untuk /version
opsi . Untuk informasi selengkapnya tentang cara TFVC mengurai spesifikasi versi untuk menentukan item mana yang berada dalam cakupannya, lihat Menggunakan perintah kontrol versi Team Foundation.
<source>
Menentukan file atau folder untuk bertindak sebagai sumber penggabungan.
<destination>
Menentukan file atau folder untuk bertindak sebagai tujuan penggabungan.
<username>
Menyediakan nilai untuk /login
opsi . Anda dapat menentukan username
nilai sebagai DOMAIN\username
atau username
.
Opsi
Opsi
Keterangan
/recursive
Cocok dengan source
spesifikasi item di direktori saat ini dan subfolder apa pun.
/force
Mengabaikan riwayat penggabungan dan menggabungkan perubahan yang ditentukan dari sumber ke tujuan, meskipun beberapa atau semua perubahan ini telah digabungkan sebelumnya.
/candidate
Mencetak daftar semua set perubahan di sumber yang belum digabungkan ke tujuan. Daftar harus menyertakan ID set perubahan yang belum digabungkan dan informasi dasar lainnya tentang set perubahan tersebut. Tanda bintang untuk hasil tertentu menunjukkan bahwa tanda bintang digabungkan sebagian, yang berarti beberapa perubahan dalam set perubahan telah digabungkan dan perubahan lain belum digabungkan.
/discard
Tidak melakukan operasi penggabungan, tetapi memperbarui riwayat penggabungan untuk melacak bahwa penggabungan terjadi. Ini membuang set perubahan agar tidak digunakan untuk penggabungan tertentu.
/version
Untuk penggabungan selektif, opsi ini menentukan rentang yang harus digabungkan ke tujuan. Untuk penggabungan catch-up, parameter ini menentukan versi sebelum semua perubahan yang tidak digabungkan harus digabungkan.
Untuk penggabungan selektif, rentang versi menunjukkan titik awal dan akhir dari kumpulan perubahan yang akan digabungkan. Misalnya, jika Anda mencoba menggabungkan versi 4~6
, set perubahan 4, 5, dan 6 digabungkan.
/lock
Menentukan jenis kunci atau menghapus kunci dari item. Untuk informasi selengkapnya, lihat Memahami jenis kunci.
Opsi kunci:
None
: Tidak menempatkan kunci pada item, dan menghapus kunci yang ada dari item.Checkin
: Pengguna lain dapat memeriksa item yang ditentukan, tetapi mereka tidak dapat memeriksa revisi ke file terkunci hingga Anda melepaskan kunci dengan melakukan check-in. Jika ada pengguna lain yang telah mengunci salah satu item yang ditentukan, operasi penguncian gagal.Checkout
: Mencegah pengguna masuk atau memeriksa salah satu item yang ditentukan hingga Anda secara eksplisit melepaskan kunci. Jika ada pengguna lain yang telah mengunci salah satu item yang ditentukan, atau jika ada perubahan yang tertunda terhadap item apa pun, operasi penguncian gagal.
/preview
Memperlihatkan pratinjau penggabungan.
/baseless
Melakukan penggabungan tanpa versi dasar. Artinya, memungkinkan pengguna untuk menggabungkan file dan folder yang tidak memiliki hubungan penggabungan. Setelah penggabungan tanpa dasar, hubungan penggabungan ada, dan penggabungan di masa mendatang tidak harus tidak berdasar.
Catatan
Penggabungan tanpa dasar tidak dapat menghapus file di target. Anda dapat membawa perubahan tersebut secara manual.
/noimplicitbaseless
Menentukan bahwa TFVC tidak akan melakukan penggabungan tanpa dasar implisit antara dua item yang memiliki nama relatif yang sama dalam dua pohon kontrol versi yang tidak terkait.
/nosummary
Menghilangkan ringkasan konflik, kesalahan, dan peringatan.
/noprompt
Menekan setiap permintaan untuk input dari Anda.
/conservative
Menghasilkan lebih banyak konflik saat Anda menggabungkan satu cabang ke cabang lainnya.
/format
Menentukan format ringkasan konflik penggabungan:
Brief
(default): Hanya meringkas jumlah total konflik, peringatan, dan kesalahan.Detailed
: Meringkas tidak hanya jumlah total konflik, peringatan, dan kesalahan, tetapi juga mencantumkan detail tentang setiap konflik.
Catatan
Opsi ini hanya berlaku ketika output berisi ringkasan konflik. Ringkasan tidak dapat ditampilkan jika /nosummary
opsi digunakan atau penggabungan menyebabkan kurang dari 10 konflik, peringatan, dan kesalahan.
/login
Menentukan nama pengguna dan kata sandi untuk mengautentikasi pengguna dengan Azure DevOps.
Keterangan
Anda dapat menggunakan merge
perintah tf
utilitas baris perintah untuk menerapkan perubahan di cabang sumber yang ada ke cabang target yang ada. Anda dapat menggabungkan revisi individual atau set perubahan lengkap ke cabang target. Anda dapat menggabungkan perubahan dari sumber ke cabang target atau dari tujuan ke cabang sumber.
Perintah ini merge
juga memungkinkan Anda mengkueri perubahan di cabang sumber yang belum dimigrasikan ke cabang target. Perintah ini juga memungkinkan Anda menunjukkan bahwa perubahan tertentu tidak akan pernah digabungkan dari sumber ke tujuan dan tidak boleh lagi ditampilkan sebagai kandidat untuk operasi penggabungan.
Untuk informasi selengkapnya tentang cara menggunakan tf
utilitas baris perintah, lihat Menggunakan perintah kontrol versi Team Foundation.
Penggabungan tanpa dasar
Gunakan penggabungan tanpa dasar untuk menggabungkan item yang tidak bercabang secara langsung satu sama lain. Untuk melakukan penggabungan tanpa dasar, Anda harus menggunakan tf merge
perintah . Ketika Anda melakukan penggabungan tanpa dasar, TFVC tidak memiliki informasi tentang hubungan file di cabang. Dalam penggabungan tanpa dasar, Anda harus melakukan resolusi konflik manual. Setelah Anda melakukan penggabungan tanpa dasar dan menyelesaikan konflik apa pun, TFVC merekam riwayat penggabungan dan membuat hubungan antara folder dan file.
Saat Anda menjalankan tf merge
, TFVC melakukan penggabungan tanpa dasar implisit di antara item yang memiliki nama relatif yang sama di dua pohon yang dikontrol versi yang sebelumnya terkait. Misalnya, Anda mungkin ingin menggabungkan cabang $SRC
terkait dan $TGT
. Kedua cabang berisi file yang tidak terkait yang bernama a.txt. Saat Anda menjalankan tf merge
, TFVC membuat hubungan antara dua file a.txt jika kedua file sama, enkripsi yang mematuhi FIPS dinonaktifkan, dan file sumber tidak terkait dengan file lain dalam target.
Jika Anda menjalankan tf merge
dengan /noimplicitbaseless
set opsi, ketika TFVC mencoba menggabungkan dua cabang, dua file a.txt membuat konflik namespace saat Anda mencoba memeriksa perubahan. Untuk mengatasi konflik, Anda harus mengganti nama salah satu file.
Contoh
Contoh berikut menggabungkan perubahan dari MyFile_beta1 yang belum digabungkan ke dalam MyFile_RTM.
c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive
Contoh berikut menggabungkan changeset 137 ke dalam branch2.
c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive
Contoh berikut menggabungkan semua changeset hingga changeset 137 menjadi branch2.
c:\projects>tf merge /version:C137 branch1 branch2 /recursive
Contoh berikut mencetak daftar set perubahan di cabang1 yang belum digabungkan ke dalam cabang2.
c:\projects>tf merge /candidate branch1 branch2 /recursive
Contoh berikut mencetak daftar set perubahan di cabang2 yang belum digabungkan kembali ke cabang1.
c:\projects>tf merge /candidate branch2 branch1 /recursive
Contoh berikut membuang changeset 137 sebagai kandidat untuk menggabungkan ke dalam cabang2.
c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive
Contoh berikut membuang semua changeset hingga changeset 137 sebagai kandidat untuk menggabungkan ke dalam branch2.
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive