Saat saya menjalankan 'git gui', saya mendapatkan munculan yang bertuliskan
Repositori ini saat ini memiliki sekitar 1500 objek lepas.
Kemudian menyarankan untuk mengompresi database. Saya telah melakukan ini sebelumnya, dan itu mengurangi objek yang lepas menjadi sekitar 250, tetapi itu tidak menekan popup. Mengompresi lagi tidak mengubah jumlah benda yang lepas.
Alur kerja kami saat ini memerlukan penggunaan 'rebase' yang signifikan saat kami beralih dari Perforce, dan Perforce masih menjadi SCM kanonik. Setelah Git menjadi SCM kanonik, kami akan melakukan penggabungan reguler, dan masalah objek longgar harus sangat diatasi.
Sementara itu, saya sangat ingin menghilangkan munculan yang 'berguna' ini.
Jawaban:
Karena belum ada yang menjawab, saya melihat ke dalam kode untuk melihat cara menghapus kode yang menampilkan dialog itu. Saya menemukan
hint_gc
prosedur yang melakukannya dan tempat dipanggilnya. Pada saat yang sama saya perhatikan bahwa akhir 2011 telah ditambahkan opsi konfigurasi untuk menonaktifkan dialog . Perubahan ini (bagian dari git-gui 0.16.0) digabungkan ke jalur utama Git pada 2011-12-14 .Jadi jika Anda menggunakan Git v1.7.9 atau yang lebih baru, Anda dapat menonaktifkan dialog peringatan dengan perintah berikut:
Jika Anda menggunakan versi yang lebih lama, maka Anda dapat mengedit
/lib/git-core/git-gui
dan menghapusafter 1000 hint_gc
garis, atau mengedit/usr/share/git-gui/lib/database.tcl
dan menghapus isihint_gc
prosedur. (Jalur file ini berada di Cygwin - di lingkungan lain file mungkin berada di lokasi yang berbeda. Untuk Windows, inic:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl
)sumber
after 1000 hint_gc
sehingga peringatan terjadi setelah10000
benda lepas?after 1000
mengacu pada jumlah milidetik untuk menunggu sampai dialog ditampilkan. Dengan meningkatkannya menjadi "10000", dialog akan tetap muncul, tetapi akan memakan waktu 10 detik untuk melakukannya.database.tcl
mengandung definisi limit dan dapat ditingkatkan untuk mengurangi frekuensi dialog.Pembaruan:
git prune
akan "memecahkan" masalah, dalam hal itu akan menghapus objek yang longgar(
git gc
panggilangit prune
, tetapi hanya untuk objek longgar yang lebih tua dari dua minggu, secara default).Namun, seperti yang disebutkan oleh OP Michael Donohue di komentar:
Jawaban asli:
Masalah "
git gc
" tidak menghilangkan semua benda lepas telah dilaporkan sebelumnya (akhir 2008, " "git gc
"sepertinya tidak menghilangkan benda lepas lagi "Jadi, dalam kasus Anda, apakah "
git prune
" bisa membantu?(mungkin dengan menggunakan "sekarang" dalam
gc.pruneexpire
variabel config, diperlukan agar perilaku di atas terjadi).Anda juga memiliki (dari utas yang sama):
sumber
Saat popup "Objek Longgar", saya tahu sudah waktunya menjalankan pengumpul sampah git:
Setelah itu popupnya hilang.
Pembaruan: (karena saran TED)
Saya mengekstrak rutinitas di bawah ini dari
git/share/git-gui/lib/database.tcl
Anda dapat memodifikasinya untuk memenuhi kebutuhan Anda.
sumber
git gc
dari baris perintah memecahkan masalah ... hanya mengklikok
di git gui entah bagaimana tidak berhasil ...Hmmmm .... Saya tidak melihat argumen baris perintah untuk itu di dokumen .
Saya kira Anda selalu dapat menurunkan sumbernya, mengambil kode untuk dialog, dan membangun kembali.
sumber