Di bagian belakang https://github.com/golang/go/issues/15201#issuecomment -208602586
Kami mengusulkan cara di mana cmd/go dan teman-teman memanfaatkan file biasa untuk mensimulasikan perilaku seperti symlink dalam repositori selama resolusi paket GOPATH dengan cara agnostik platform
https://docs.google.com/document/d/1n5y3mZPs_4PjI80a0vZEaHLe7r9PeiiE9xsIrQFT8Is/edit
Terima kasih kepada @kardianos karena telah membagikan pemikiran awalnya secara offline
_Nama "symlink" pasti akan memicu diskusi yang baik dalam dirinya sendiri: Saya berharap kita dapat mendiskusikan nama/penamaan secara terpisah dari inti proposal_
Beberapa komentar/pertanyaan:
@kostya-sh
Istilah "repositori" tidak didefinisikan
Catatan kaki pertama memberikan detail - definisi yang sama seperti yang diasumsikan di sini . Tapi saya setuju pertanyaannya masih tetap apakah "repositori" secara formal didefinisikan di suatu tempat?
Bagaimana jika kode sumber di GOPATH tidak berasal dari VSC atau berasal dari Subversion yang mendukung pemeriksaan direktori?
Pertanyaan terbuka - Saya akui satu-satunya pertimbangan sejauh ini adalah untuk kode yang merupakan bagian dari "repositori". Saya telah menambahkan bagian "pertanyaan terbuka" di bagian bawah yang merujuk pada pertanyaan ini.
jika repositori berisi beberapa binari publik maka tidak perlu menyalin dependensi beberapa kali. dependensi vendor dapat ditempatkan di bawah cmd/vendor
Memang itu salah satu pendekatan untuk berbagi kode vendor antara binari. Tetapi pendekatan "symlink" membantu memfasilitasi pendekatan berbagi "vendor" itu dengan kode perpustakaan (lihat poin berikutnya)
Sejauh yang saya tahu, proposal ini tidak menyelesaikan masalah "perpustakaan dan program dalam repositori yang sama".
Proposal ini dengan sendirinya tidak, tidak. Tetapi repositori yang ditautkan dari bagian "Contoh motivasi" menguraikan bagaimana masalah itu dapat diselesaikan dengan menggunakan kombinasi "symlink" dan augmentasi GOPATH.
Symlinks terlalu bermasalah. Tampaknya tidak bijaksana untuk mengizinkan mereka.