Saat menggabungkan beberapa cabang (menggunakan SVN 1.6.1) di mana file telah ditambahkan di kedua cabang (dan kemudian bekerja di cabang terpisah tersebut) saya mendapatkan salah satu konflik pohon baru:
C foo.txt
> local obstruction, incoming add upon merge
Saya memerlukan perubahan dari kedua cabang, tetapi konflik pohon tidak memberi saya file .working, .merge-left & .merge-right yang biasa - yang dapat dimengerti karena sifat konflik. Ada cukup banyak konflik ini, dan konflik di mana penghapusan file yang sama telah terjadi di setiap cabang, tetapi mudah diatasi.
Bagaimana cara mengatasi masalah ini? Buku redbean SVN (untuk 1.6) tidak mencakup situasi ini.
sumber
Saya menemukan postingan yang menyarankan solusi untuk itu . Ini akan berjalan:
yang akan mengklaim file versi lokal sebagai OK.
Anda dapat menjalankannya untuk satu file atau seluruh katalog proyek.
sumber
alias mtc='stat | awk "BEGIN { FS=\" \" } /^.{6}C/ { print \$NF }"'
Kemudian saya dapat menggunakan ini sebagai argumen untuk menyelesaikan perintah, seperti ini:svn resolve --accept working $(mtc)
svn resolve --accept working path/index.html
svn menyelesaikan - menerima basis
sumber
Saya baru saja berhasil meyakinkan diri saya sendiri dengan cukup teliti mencoba mengikuti saran user619330 di atas. Situasinya adalah: (1): Saya telah menambahkan beberapa file saat mengerjakan cabang awal saya, branch1; (2) Saya membuat cabang baru, branch2 untuk pengembangan lebih lanjut, mencabangnya dari trunk dan kemudian menggabungkan perubahan saya dari branch1 (3) Seorang rekan kerja telah menyalin mod saya dari branch1 ke cabangnya sendiri, menambahkan mod lebih lanjut, dan kemudian digabungkan kembali ke bagasi; (4) Sekarang saya ingin menggabungkan perubahan terbaru dari trunk ke cabang saya saat ini, branch2. Ini dengan svn 1.6.17.
Penggabungan memiliki konflik pohon dengan file baru, dan saya ingin versi baru dari trunk di mana mereka berbeda, jadi dari salinan bersih dari branch2, saya melakukan penghapusan svn dari file yang konflik, melakukan perubahan branch2 ini (sehingga membuat sementara versi branch2 tanpa file yang dimaksud), dan kemudian saya menggabungkan dari bagasi. Saya melakukan ini karena saya ingin riwayatnya cocok dengan versi bagasi sehingga saya tidak akan mengalami lebih banyak masalah nanti ketika mencoba menggabungkan kembali ke bagasi. Penggabungan berjalan dengan baik, saya mendapatkan versi batang dari file, svn st menunjukkan semua ok, dan kemudian saya mengalami lebih banyak konflik pohon saat mencoba melakukan perubahan, antara penghapusan yang telah saya lakukan sebelumnya dan penambahan dari penggabungan. Apakah svn menyelesaikan konflik demi copy pekerjaan saya (yang sekarang memiliki versi trunk file), dan membuatnya untuk dikomit.
Tidak. Pembaruan salinan lain dari branch2 menghasilkan file versi lama (pra-trunk merge). Jadi sekarang saya memiliki dua copy pekerjaan berbeda dari branch2, yang seharusnya diperbarui ke versi yang sama, dengan dua versi file yang berbeda, dan keduanya bersikeras bahwa mereka sepenuhnya up-to-date! Memeriksa salinan bersih branch2 menghasilkan versi lama (pra-trunk) file. Saya secara manual memperbarui ini ke versi trunk dan melakukan perubahan, kembali ke copy pekerjaan pertama saya (dari mana saya telah mengirimkan perubahan trunk awalnya), mencoba memperbaruinya, dan sekarang mendapatkan kesalahan checksum pada file yang dimaksud. Hancurkan direktori yang dimaksud, dapatkan versi baru melalui pembaruan, dan akhirnya saya memiliki versi yang bagus dari branch2 dengan perubahan trunk. Saya harap. Pengembang peringatan.
sumber