Bagikan melalui


Perintah penggabungan (Kontrol Versi Team Foundation)

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Perintah tf merge menerapkan perubahan dari satu cabang ke cabang lain di Team Foundation Version Control (TFVC).

Nota

Hasil perintah ini tidak tercermin di server Azure DevOps hingga Anda melakukan operasi check-in. Untuk informasi selengkapnya, lihat Mengembangkan kode dan mengelola perubahan tertunda.

Prasyarat

Untuk menggunakan perintah , atur izin Check out ke Izinkan untuk folder ruang kerja yang berisi , dan atur izin Baca ke Izinkan untuk folder ruang kerja yang berisi . Untuk informasi selengkapnya, lihat izin TFVC Default.

Sintaksis

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

Deskripsi

<versionspec>

Menyediakan nilai seperti C2 untuk opsi /version. 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 opsi /login. Anda dapat menentukan nilai username sebagai DOMAIN\username atau username.

Pilihan

Opsi

Deskripsi

/recursive

Cocok dengan spesifikasi item source 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 memeriksa 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.

Nota

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.

Nota

Opsi ini hanya berlaku ketika output berisi ringkasan konflik. Ringkasan tidak dapat ditampilkan jika opsi /nosummary digunakan atau penggabungan menyebabkan kurang dari 10 konflik, peringatan, dan kesalahan.

/login

Menentukan nama pengguna dan kata sandi untuk mengautentikasi pengguna dengan Azure DevOps.

Komentar

Anda dapat menggunakan perintah merge utilitas baris perintah tf 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 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 utilitas baris perintah tf, 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 perintah tf merge. 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 antara item yang memiliki nama relatif yang sama di dua pohon yang dikontrol versi yang sebelumnya terkait. Misalnya, Anda mungkin ingin menggabungkan cabang terkait $SRC 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 opsi /noimplicitbaseless diatur, 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 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 cabang2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

Contoh berikut mencetak daftar set perubahan di branch2 yang belum digabungkan kembali ke branch1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

Contoh berikut membuang changeset 137 sebagai kandidat untuk penggabungan ke 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 branch2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive