Folder terhambat di Subversion


131

Apa sih yang "terhalang" artinya ketika Anda mencoba memeriksa ke Subversion? Saya melihat dua folder berwarna merah dengan status teks "terhalang." Saya tidak mengerti apa artinya ini di dokumen mana pun.

Ketika saya mencoba cleanupperintah, saya mendapatkan "nama folder bukan direktori yang berfungsi." Ini adalah folder yang baru saya buat di VS, dan ketika saya mencoba menambahkannya ke Subversion itu memberi saya kesalahan itu. Semua folder lainnya baik-baik saja.


Anda mendapatkan 'Terhalang' pada operasi add?
Sander Rijken

Jawaban:


113

itu terjadi ketika Anda telah menghapus atau memindahkan subdirektori .svn (tanpa melalui perintah SVN), sehingga SVN memiliki pandangan yang rusak dari copy pekerjaan.

Coba pembersihan terlebih dahulu, dan jika itu tidak menyelesaikannya, kembalikan (atau perbarui) direktori untuk mengembalikan folder .svn subdirektori.


1
aneh. Saya akhirnya harus melakukan checkout folder ini. Folder sudah ada sebelumnya di repositori. Saya kemudian menghapusnya tanpa menggunakan perintah svn delete. Dengan memeriksanya kembali dan melakukan, masalah terselesaikan. Kemudian pada file .css lain yang saya TIDAK mengganti nama, menghapus, dan hanya mengeditnya, itu saya harus melakukan pembaruan svn karena saya mendapatkan beberapa masalah aneh dengan itu (pesan berbeda).
PositiveGuy

1
Ya Tuhan, saya mencoba melakukan berdasarkan salinan proyek ini yang saya miliki di drive eksternal saya, bukan copy pekerjaan dari drive lokal saya. Duh.
PositiveGuy

8
Ini sering terjadi jika Anda memindahkan direktori dari satu tempat ke tempat lain dan tidak menggunakan perintah pemindahan SVN. File .svn yang tersembunyi dipindahkan bersamaan dengan itu tetapi tidak diperbarui. Menghapus file .svn memperbaiki masalah.
user85259

1
Ini terjadi pada saya ketika saya memindahkan seluruh folder dengan menyalin folder ke folder lain menggunakan Visual Studio 2008, daripada menggunakan Windows Explorer.
MacGyver

2
Cara saya menyelesaikannya adalah dengan mengekspor file saya dari folder yang terhalang sehingga saya tidak kehilangan file-file tersebut, kemudian saya mengklik folder di atas folder yang terhalang itu, mengklik kembali, kemudian membatalkan semua yang dipilih kecuali folder yang terhalang, dan mengembalikan yang terhalang folder, jadi itu akan merobek folder itu dari isi file .svn. Kemudian saya menambahkan kembali folder yang sebelumnya terhambat kembali dengan file yang diekspor, dan menambahkannya kembali.
MacGyver

9

Tanpa tahu apa menyebabkan hal ini, solusinya dapat mengekspor copy pekerjaan (seluruh checkout yang Anda miliki secara lokal) ke tempat lain.

Jika Anda menggunakan tortoisesvn, Anda mendapatkan opsi untuk "mengekspor file yang tidak berversi", tapi saya pikir jika melakukannya dari baris perintah, itu hanya mengekspor file yang diversi sehingga Anda mungkin memiliki sedikit tugas yang melelahkan untuk menyalin file yang tidak berversi secara manual .

Setelah selesai, periksa copy pekerjaan yang bersih dan kemudian letakkan cadangan yang diekspor yang Anda miliki di atasnya. Sangat penting bahwa cadangan tidak memiliki folder .svn di dalamnya.

Saya telah melihat kesalahan ini sebelumnya ketika orang telah memeriksa copy pekerjaan di dalam copy pekerjaan lain atau apa pun yang merusak entri .svn.


Itu memperbaikinya bagi saya. Terima kasih!
Patrick

11
Saya pikir solusinya adalah menempelkan SVN di tempat sampah dan beralih ke sistem kontrol versi yang bukan sampah. Maaf ... saya hanya frustrasi.
Phil Hale

5

Punya masalah yang sama dan memperbaikinya seperti ini:

  • mengganti nama dir yang terhambat
  • membuat dir dengan nama aslinya dalam SVN (mis. svn mkdir)
  • memperbarui folder induk, sehingga direktori yang baru dibuat muncul di copy pekerjaan saya
  • menyalin file-file dari yang terhambat ke dir yang baru dibuat dan memberikannya

4

Jika Anda menggunakan sistem * nix, pastikan Anda tidak membuat file, tambahkan ke SVN, lalu hapus, ganti dengan folder dengan nama yang sama. Tidak membantu OP, tapi mudah-mudahan itu akan menyelamatkan seseorang dari banyak tekanan.


1

Ini berarti bahwa, untuk beberapa alasan, konflik telah terjadi selama operasi. Periksa untuk melihat apakah ada file atau folder tidak berversi yang ada dengan nama yang sama dengan yang versi.

(Diparafrasekan dari file bantuan klien Tortoise SVN)


1

Tidak ada yang berhasil untuk saya, jadi saya telah melakukan yang berikut:

  • diekspor dengan file yang tidak berversi di lokasi baru
  • mengganti nama folder yang ada
  • memindahkan folder dari lokasi ekspor di proyek
  • mengganti nama folder baru
  • tambahkan, komit
  • menghapus folder lama yang diubah namanya
  • mengganti nama folder baru
  • melakukan

1

Ada berbagai variasi skenario yang dapat menyebabkan situasi ini. Ini salah satu contohnya:

Saya berakhir dengan! tandai pada direktori yang diubah namanya dari www ke www_a tanpa menggunakan perintah 'svn rename':

  1. Ganti nama direktori saat ini yang menyandang nama asli, misalnya menjadi www_b
  2. Ganti nama www_a kembali ke www
  3. Pastikan Anda melakukan 'svn update' atau 'svn revert' di dalam direktori www
  4. Hapus direktori www terbaru tanpa menggunakan 'svn delete'
  5. Buka direktori induk dan terbitkan 'svn update'
  6. Ini akan mengembalikan direktori www asli
  7. Kali ini gunakan 'svn rename' untuk mengganti nama www ke www_a
  8. Ganti nama www_b kembali ke www
  9. Gunakan 'svn add' untuk menambahkannya ke dalam repositori

Anda harus mendapatkan direktori kerja svn yang benar pada saat ini. Dan pelajari satu atau dua hal tentang cara mengatasi kebingungan direktori svn.


1

Menghadapi masalah ini pada mesin Windows.

Saya telah memeriksa direktori sebelum memeriksa seluruh proyek miliknya. Itu menyebabkan masalah 'terhalang' bagi saya.

Saya hanya menghapus folder itu dan menjalankan pembaruan dari root (folder itu). Itu bekerja dengan baik.

Perintah seperti pembersihan dll. Tidak berfungsi untuk saya.

Beberapa kata peringatan:

  1. Ini mahal jika foldernya besar.
  2. Ini akan menyebabkan Anda kehilangan semua perubahan Anda jika ada.

Semua yang terbaik.


1

Saya juga melihat ini di Windows ketika saya membuat tautan simbolik ke direktori repositori; dalam hal ini, akar repositori dilihat sebagai "terhalang". Ini tampaknya tidak memiliki pengaruh apa pun.

Langkah-langkah mereproduksi:

  1. Lihat repo Anda

    svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir
    
  2. Periksa apakah direktori Anda baik-baik saja

    cd plugin_dir
    svn st -u
    

    Keluaran seharusnya

    Status against revision: 1234
    
  3. Buat symlink (yang menunjukkan masalah)

    cd ..
    mklink /d link_dir plugin_dir
    cd link_dir
    svn st -u
    

    Output akan menjadi

    ~           1234  .
    Status against revision: 1234
    

0

Saya mengalami masalah ini ketika menempel di folder dengan subdirektori ke dalam copy pekerjaan saya menggunakan klien FTP saya - saya tahu saya mengacaukan begitu saya menekan tombol transfer ... bahaya dari cara kerjanya sudah terlambat.

Saya mencoba semua saran di atas dan lainnya yang ditemukan online tidak berhasil. Setiap opsi menghasilkan kesalahan bahwa direktori saya dikunci dan operasi tidak dapat dilakukan.

Saya pergi ke salinan Time Machine saya, memulihkan direktori dan baik untuk pergi. Saya membersihkan copy pekerjaan sebagai tindakan pencegahan, memperbarui file saya dengan benar dan kembali berbisnis.


0

Kami sering memiliki beberapa cabang dalam perjalanan pada saat yang sama, untuk menyelamatkan saya beralih atau bermain-main dengan konfigurasi IIS, saya memeriksa setiap cabang ke folder terpisah. Saya kemudian menggunakan tautan direktori untuk menghubungkan folder-folder itu kembali ke jalur utama yang dikonfigurasi dalam IIS.

Jadi bagi saya direktori yang ditautkan selalu memiliki tanda seru berwarna kuning dan ditandai sebagai terhambat. Saya percaya ini karena secara teknis dibuat / dipindahkan di luar SVN.


0

Saya mendapatkan status "terhalang" ini pada direktori ketika saya melakukan pembaruan ke CMS (WordPress atau Drupal) melalui antarmuka web - aplikasi tidak menyadari bahwa kodenya sebenarnya adalah copy pekerjaan subversi, jadi ketika memperbarui plugin itu menghapus plugin yang menghapus plugin itu. direktori (termasuk .svndirektori) dan masukkan direktori baru dari versi plugin yang baru.

Untuk mendapatkan .svndir itu kembali, dari direktori yang berisi dir terhalang. Saya melakukan checkout --force. Misalnya, jika plugin_dirditandai "~", dari direktori induknya saya jalankan:

svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir

File apa pun yang ada di sana ditinggalkan sendiri dan ditandai "E" pada output dari perintah checkout (ditandai sebagai "M" ketika saya menjalankan svn status )

Terkadang saya harus kembali dan menambahkan file yang baru dengan pembaruan; atau menghapus file yang harus dihapus sebagai bagian dari pembaruan, karena mereka muncul kembali ketika saya melakukan checkout. Saya percaya ini ditandai sebagai "A" pada checkout, tetapi yang berikutnya svn statustidak akan menyebutkannya.


0

Saya mengalami ini di Eclipse di mana beberapa file ditandai dengan tanda seru merah. Masalahnya adalah folder .svn liar di direktori sumber. Saya menghapus folder .svn, gerhana segar, dan dapat memeriksa file.


ya saya harus menghapus folder saya, itu rusak ... folder .svn.
PositiveGuy

0

Ini juga bisa terjadi ketika Anda meningkatkan versi subversi Anda ke versi yang tidak didukung XCode.


0

Inilah cara paling sederhana (dan paling aman) yang saya temukan untuk menyelesaikan ini:

  1. Ganti nama sementara file atau direktori yang menyinggung (atau direktori induk) yang terhalang (mis. Tambahkan ".backup").
  2. Hapus .svndirektori di dalam direktori yang diubah namanya (jika ada).
  3. svn revert objek berganti nama (dan sekarang hilang) dari langkah 1.
  4. svn delete objek yang dikembalikan.
  5. Ubah nama kembali cadangan dari langkah 1 kembali ke nama aslinya.
  6. Tambahkan dan check-in objek yang diubah namanya kembali ke svn sebagai objek baru.

0

Ini terjadi pada saya ketika saya mengganti file dengan folder, memiliki nama yang sama persis. Dipecahkan dengan menghapus file lama, komit, lalu tambahkan yang baru. Sedikit hacky, tetapi berhasil untuk saya :)


0

Saya menghapus .svn di direktori terhambat dan memperbaruinya dari luar. Kemudian perintah svn luar akan mengenali file-file ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.