dapatkan hash komit masa depan git sebelum PR digabungkan [duplikat]

Saya punya beberapa skenario khusus. Saya telah mengangkat satu PR. Ada banyak komitmen untuk PR ini.

Sekarang saya perlu mendapatkan hash komit, yang akan dihasilkan setelah menggabungkan PR ini menjadi master. Apakah mungkin untuk mendapatkan hash komit sebelum menggabungkannya?

misalkan salah satu komponen aplikasi adalah : xyz

  1. kami membuat PR untuk cabang fitur tersebut untuk menguasai jenkins -› Pembuatan PR dimulai -› menyebarkan aplikasi pada node -› plugin jacoco dalam aplikasi membuat file exec

  2. Penggabungan PR terjadi dari master build -› tidak ada penerapan untuk CC sekarang ...

  3. Setelah penerapan selesai, dari tempat terpisah, tugas cakupan CC dipicu -› yang akan mengambil file exec dan mendorong ke sonar.

  4. disini saya mencoba membuatnya seperti .. nama file exec akan memiliki ‹Future_git_commit_hash›_xyz.exec

  5. dalam pekerjaan cakupan CC saya akan memeriksa commit_id ini .. dan kemudian mendorong ke sonar. (di sini umumnya kita tidak memerlukan commit_id, hanya master kita dapat checkout dan mendorong ke sonar) ...

masalah muncul jika : sebelum mendorong ke sonar, satu PR lagi dimunculkan. dan file exec baru dibuat. jadi saya berpikir untuk memiliki id komit sehingga saya dapat membedakannya.

lagi pula jika mendapatkan commitid sebelum penggabungan tidak memungkinkan.. perlu memeriksa pendekatan lain.


person Baitanik    schedule 19.10.2020    source sumber
comment
Mengapa? Baunya seperti Masalah XY. Secara teoritis dapat diprediksi jika Anda mengetahui banyak detail yang cenderung berubah (waktu persisnya komit penggabungan akan dilakukan, hash persis dari komit yang akan digabungkan, dan hasil pasti dari keseluruhan pohon file, pada dasarnya Anda harus mengetahui keadaan sebenarnya dari cabang target pada saat penggabungan).   -  person Joachim Sauer    schedule 19.10.2020
comment
Saya membutuhkannya untuk beberapa pemrosesan. Sebenarnya saya pikir ketika PR dimunculkan, github akan membuat id sementara menggunakan informasi seperti stempel waktu dan penulis PR dll. dan ketika PR digabungkan, id yang sama akan digunakan. tapi saya kira tidak berfungsi seperti itu.. pada penggabungan PR lagi itu akan menghitung hash.. karena setelah menaikkan PR: jika kita melakukan hal berikut: git ambil asal +refs/pull/601/merge git checkout FETCH_HEAD maka kita mendapatkan satu git hash.. Saya berpikir apakah kita bisa mempertahankan yang itu hanya untuk penggabungan.   -  person Baitanik    schedule 19.10.2020
comment
beberapa pemrosesan tidak memberi tahu kita apa pun. Segala sesuatu di TI dapat digambarkan sebagai suatu proses. Jika Anda memberi tahu kami secara spesifik apa yang ingin Anda lakukan, kami dapat memandu Anda menuju solusi yang bisa diterapkan.   -  person Joachim Sauer    schedule 19.10.2020
comment
ditambahkan dalam deskripsi itu sendiri.   -  person Baitanik    schedule 19.10.2020
comment
Apakah ini menjawab pertanyaan Anda? Prediksi git commit id dan komit file yang berisi id komit itu   -  person Daemon Painter    schedule 19.10.2020


Jawaban (2)


Tidak, itu tidak mungkin.

Komit berisi deskripsi elemen seperti:

  1. penulis komit,
  2. isi komit (daftar file + direktori yang membentuk komit ini),
  3. orang tua komit
  4. stempel waktu saat komit dibuat

Hash dari sebuah komit adalah hash dari semua informasi ini. Karena tidak mungkin untuk menebak terlebih dahulu stempel waktu di mana penerapan akan terjadi, Anda tidak dapat menebak terlebih dahulu apa hash tersebut.


Saya membayangkan Anda ingin menggunakan hash ini untuk beberapa pemrosesan: cara umum adalah dengan membuat platform yang menangani PR (github? Azure devops?) memicu skrip atau panggilan api setelah PR selesai diterima dan digabungkan.

person LeGEC    schedule 19.10.2020
comment
Ya saya menggunakan github. Saya memerlukannya untuk beberapa pemrosesan... jadi sebelum komit terjadi maka itu tidak mungkin.. Saya pikir git akan membuat id sementara ketika PR dinaikkan menggunakan stempel waktu detail itu dan semuanya .. ID yang sama akan digunakan untuk penggabungan. .timestamp dll yang diperlukan saat PR dinaikkan. - person Baitanik; 19.10.2020
comment
seperti komentar @JoachimSauer: dapatkah Anda menjelaskan apa yang ingin Anda lakukan dengan hash komit ini? - person LeGEC; 19.10.2020
comment
karena setelah menaikkan PR: jika kita melakukan hal berikut: git ambil asal +refs/pull/601/merge git checkout FETCH_HEAD maka kita mendapatkan satu git hash.. Saya berpikir apakah kita bisa mempertahankan yang itu hanya untuk penggabungan. - person Baitanik; 19.10.2020

Tidak, ini tidak mungkin, karena waktu tepatnya akan dimasukkan dalam hash dari komit penggabungan.

person RomainValeri    schedule 19.10.2020