SVN masih dalam konflik?

284

Bagaimana cara mengeluarkan direktori ini dari konflik? Saya tidak peduli apakah itu diselesaikan menggunakan "milik mereka" atau "milikku" atau apa pun ...

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict
Mpen
sumber
93
jawabannya adalah: [svn resolved filename] lakukan ini daripada solusi yang diterima.
Travis Schneeberger
1
@ TravisSchneeberger solusi yang diterima baik-baik saja 😉
Hi-Angel
svn resolved * nama file * tidak memperbaikinya untuk saya.
reinierpost

Jawaban:

447

Berikan perintah berikut:

svn resolved <filename or directory that gives trouble>

(Terima kasih kepada @Jeremy Leipzig untuk jawaban ini dalam komentar)

Roalt
sumber
35
Serius, jika Anda tidak peduli bagaimana penyelesaiannya (mungkin Anda hanya akan menghapusnya) ini adalah jawaban yang tepat.
invertedSpear
1
Ini tidak menyelesaikan apa pun. Kesalahan mungkin akan muncul lagi di komit berikutnya.
Tadej
Terima kasih banyak, ini berhasil untuk saya! Anda harus di repo root svn Anda, Anda dapat menggunakan perintah ini!
GeekHades
276

Oke, inilah cara memperbaikinya:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

detail lebih lanjut ada di: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html

Darrell Duane
sumber
Jika Anda bekerja dengan Eclipse IDE, Anda juga dapat menerapkan solusi "non command line" saya, yang saya jelaskan dalam jawaban terpisah di bawah ini.
Peter Wippermann
3
menggunakan svn 1.7.4, svn membantu menyelesaikan menyatakan bahwa ia "telah ditinggalkan karena menjalankan 'svn resol --accept working'."
wreckgar23
35

Bagi saya hanya mengembalikan opsi --depth infinity memperbaiki direktori Svn masih dalam masalah confict:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"
sembilan puluh lima
sumber
1
untuk mengembalikan seluruh direktori file atau file tidak ada lagi
biology.info
Untuk menyelesaikan konflik file yang dihapus secara lokal yang ada di server, opsi ini berfungsi ..
Neo
1
Terima kasih banyak. "svn mengembalikan --depth infinity." bekerja untuk saya dan mengembalikan file yang dihapus, yang tidak muncul kembali hanya dengan "svn up"
Rauli Rajande
16
  1. svn tekad
  2. pembersihan svn
  3. pembaruan svn

tiga perintah svn CLI ini dalam urutan ini sementara cd-ed ke direktori yang benar bekerja untuk saya.

PiggyMacPigPig
sumber
@Elad Tabak: Dalam kasus saya, saya harus melakukannya ke direktori induk dari file yang memberi saya masalah, ini mungkin yang Anda temui
Jay Sullivan
11

Jika Anda menggunakan Eclipse IDE dan menemukan kesalahan ini saat melakukan, inilah solusi dalam alat untuk Anda. Saya menggunakan Subclipse, tetapi solusi untuk Subversif bisa serupa.

Apa yang Anda mungkin tidak perhatikan adalah bahwa ada simbol tambahan pada file yang bertentangan, yang menandai file tersebut memang sebagai "konflik".

Klik kanan pada file, pilih "Tim" dan "Edit konflik ...". Pilih tindakan yang sesuai. Saya menggabungkan file secara manual pada tingkat teks sebelumnya, jadi saya mengambil opsi pertama, yang akan mengambil status saat ini dari salinan lokal Anda sebagai "solusi yang diselesaikan". Sekarang tekan "OK" dan hanya itu.

Simbol yang bertentangan seharusnya telah menghilang dan Anda harus dapat melakukan lagi.

Peter Wippermann
sumber
2
Juga, dalam kasus konflik direktori, Anda dapat melakukan "Tim-> Perlihatkan Pohon Konflik" dan kemudian tinjau semua konflik itu dan tandai sebagai diselesaikan (dalam jendela "Konflik Pohon SVN" yang terpisah)
altumano
6

Satu lagi solusi di bawah ini,

Jika seluruh folder dihapus dan SVNis melempar kesalahan "file admin .svn hilang", berikut ini akan digunakan untuk menyelesaikan konflik ke keadaan kerja.

svn resolve --accept working "file / directory name "
Bala Varadarajan
sumber
3

Petunjuk untuk Tortoise SVN

Arahkan ke direktori tempat Anda melihat kesalahan ini. Jika Anda tidak memiliki perubahan, lakukan yang berikut ini

Sebuah. Klik kanan dan lakukan 'Kembalikan'
b. Pilih semua file
c. Kemudian perbarui direktori lagi

PipoTells
sumber
3

Saya menggunakan perintah berikut untuk menghapus konflik menggunakan baris perintah

svn revert "location of conflict folder" -R
svn cleanup
svn update

untuk mengembalikan direktori saat ini

svn revert . -R
Ujjwal Roy
sumber
Hahahaha, jangan lakukan ini. Itu akan melakukan hal-hal buruk.
Burung hantu
Jelas akan mengembalikan perubahan Anda
Ujjwal Roy
ini sebenarnya berfungsi untuk beberapa masalah seperti konflik dan hanya bisa diselesaikan melalui cli
zero8
2

Jika Anda mengalami kesulitan menyelesaikan (seperti saya) dan Anda tidak dapat menghapus dan memperbarui sumber daya karena Anda telah membuat banyak perubahan pada mereka, plus Anda menggunakan eclipse subversive daripada klien asli, ikuti langkah-langkah ini:

  1. membuat salinan seluruh dir proyek Anda
  2. lakukan tim> putuskan sambungan di dalam gerhana, dan pilih untuk menghapus metadata svn
  3. lalu pilih tim> bagikan proyek, dan arahkan ke folder yang sama dengan tempat proyek Anda berada
  4. pilih ya, dan komit semuanya (Anda mungkin ingin mengecualikan beberapa sumber daya yang sangat lokal, seperti file konfigurasi)
  5. jika Anda telah menghapus atau memindahkan beberapa sumber daya sebelum uji coba komit pertama Anda, hapus sumber daya lama (mereka seharusnya berlipat ganda, satu di lokasi lama, satu di baru) dan melakukan penghapusan itu.

Kamu sudah selesai.

bekce
sumber
2

Saya kira solusi yang tepat adalah:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"
Frank-Rene Schäfer
sumber
0

Saya memiliki masalah serupa, ini adalah bagaimana hal itu diselesaikan

xyz @ ip: ~ / formProject_SVN $ svn diselesaikan formProj / templates / search

Menyelesaikan keadaan konflik 'formProj / templates / search'

Sekarang perbarui proyek Anda

xyz @ ip: ~ / formProject_SVN $ svn pembaruan

Memperbarui '.':

Pilih: (mc) pertahankan gerakan lokal yang terpengaruh, (r) tanda diselesaikan (hentikan gerakan), (p) tunda, (q) keluar resolusi, (h) bantuan: r (pilih opsi "r" untuk diselesaikan)

Menyelesaikan keadaan konflik 'formProj / templates / search'

Ringkasan konflik: Pohon konflik: 0 tersisa (dan 1 sudah terselesaikan)

Raghu
sumber
0

Saya memiliki masalah yang sama di linux, tetapi saya tidak bisa memperbaikinya dengan jawaban yang diterima. Saya dapat menyelesaikannya dengan menggunakan cduntuk membuka folder yang benar dan kemudian menjalankan:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

Itu saja.

Aisuko
sumber
Di baris kedua, svntidaksyn
Diego Romero Rodriguez