Jika Anda ingin membuat daftar hanya file yang telah diubah maka Anda harus menggunakan "perintah status" Berikut ini akan daftar perubahan file dalam revisi REV
+1, tetapi OP mungkin menginginkan bendera -n/ --no-statusjuga.
Niall C.
7
Untuk penyalinan mudah:hg status --no-status --change REV
zastrowm
+1 Ini jauh lebih mudah untuk diketik daripada hg status --rev REV~1:REVyang biasa saya lakukan.
Patrick Oscity
3
gunakan '.' untuk REV saat ini. artinya -hg status --change .
zaxy78
16
Hapus saja pdari Anda hg log -vprakan menampilkan daftar file. -pBerarti tunjukkan tambalan. Anda juga dapat menggunakan templat untuk memformat keluaran sesuai selera Anda.
Saya pikir Anda akan membutuhkan template berikut: --template 'files: {files} \ n'
Ton Plomp
1
Saya yakin {files} adalah bagian dari -v flag default template
eskhool
2
hg log -r. --template '{join (files, "\ n")}' ke baris baru pisahkan file
Foxichu
1
Komentar @Foxichu berhasil untuk saya, tetapi agak hacky. sebenarnya jawaban atas - hg status --change .bekerja lebih baik dan memberikan awalan tindakan file (A \ M \ D dll) dan jalur relatif yang lebih baik
zaxy78
13
Saya tahu pertanyaannya adalah untuk satu set perubahan, tetapi jika Anda ingin semua file dimodifikasi untuk berbagai rangkaian perubahan, Anda dapat melakukannya
Sangat buruk. File, dimodifikasi dalam jangkauan hg log -r BEGIN:END --template "{files}\n"seperti @ geoffrey-zheng dan @ton menulis dua tahun lalu !!!
Lazy Badger
Maaf soal itu. Diasumsikan jawaban mereka adalah untuk satu set perubahan.
Nick DeVore
1
Menurut pendapat saya, jawaban ini tidak terlalu buruk. hg status --rev BEGIN --rev ENDadalah: 1. lebih mudah diingat daripada hg log -r BEGIN:END --template "{files}\n"; 2. mencetak file dalam baris terpisah tanpa menggunakan sed(@Eric Lawler) atau join()(@Foxichu); 3. tanpa -mbendera, ini tidak hanya menampilkan file yang dimodifikasi, tetapi juga ditambahkan dan dihapus (pewarnaan standar yang bagus juga berlaku di sini); 4. ada -adan -rbendera yang memungkinkan penyaringan berbeda; 5. Jika seseorang tidak menginginkan status awalan, ada -nopsi yang menekannya.
Michał Wróbel
9
Revisi Komitmen Saat Ini
hg status --change .
.adalah singkatan dari rev saat ini, seperti @HEADdi Git
Temukan pertanyaan ini melalui Googling untuk konsep serupa. Untuk menampilkan semua file yang diubah melalui serangkaian rangkaian perubahan, semudah:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"akan menunjukkan kepada Anda daftar setiap file yang diubah atau ditambahkan di setiap set perubahan, dari [mulai rev] hingga [akhir rev], dengan setiap file perubahan di baris baru. Tukar {file_mods}{file_adds}dengan {files}untuk menampilkan semua file yang dimodifikasi, ditambahkan, atau dihapus.
sed -e 's/ /\n/g' akan membagi semua file untuk ditampilkan pada baris terpisah dan
sort akan, er, mengurutkan daftar untuk Anda sehingga kami dapat memfilter daftar dengan uniq
uniq akan memfilter daftar untuk menghapus duplikat — file yang diubah di lebih dari satu revisi.
Solusi ini merekatkan yang terakhir diubah dengan file yang ditambahkan pertama. Juga, itu tidak menangani spasi di nama file dengan benar. --templateSolusi berbasis A tanpa kekurangan ini dapat dibangun menggunakan join()seperti yang disarankan oleh @Foxichu.
Michał Wróbel
1
Saya tahu pertanyaan ini adalah pertanyaan lama dan saya terkejut tidak ada yang baru saja menawarkan formulir kode yang dimodifikasi OP. Saya mendapat daftar file yang dimodifikasi / ditambahkan / dihapus (tidak berlabel yang mana) dengan hanya menjalankan hg log -v. Atau apa yang sebenarnya saya perlukan hg log -v -l5untuk melihat file yang telah dimodifikasi / ditambahkan / dihapus dalam 5 komit terakhir (termasuk yang belum saya dorong ke repo).
"tidak ada yang baru saja menawarkan formulir kode yang dimodifikasi OP" - @Geoffrey Zheng melakukan hal itu ~ 1 jam setelah pertanyaan diposting
Michał Wróbel
-2
Jika Anda seperti kebanyakan toko, Anda menggunakan sistem tiket untuk melacak perubahan. Jika Anda mengetahui nomor tiket dan ingin menemukan semua komit yang terkait dengan tiket itu (dengan asumsi Anda menyertakan nomor tiket di pesan komit), Anda dapat menggunakan:
hg log -k TICKET_NUMBER
Ini menampilkan semua revisi yang terkait dengan tiket. Namun, itu tidak mencantumkan file. Anda dapat menggunakan salah satu jawaban di atas untuk mendapatkan daftar file yang terkait dengan revisi.
Untuk membuatnya lebih sederhana, dengan menggabungkan info dari jawaban sebelumnya, Anda dapat melakukan hal berikut untuk mencari komit, termasuk file yang diubah:
Ini terkait dengan pertanyaan. Poster tersebut menanyakan cara mendapatkan file di kumpulan perubahan. Perubahan sering kali terkait dengan tiket. Solusi saya menunjukkan cara mendapatkan file yang terkait dengan kumpulan perubahan yang terkait dengan tiket.
Jawaban:
Jika Anda ingin membuat daftar hanya file yang telah diubah maka Anda harus menggunakan "perintah status" Berikut ini akan daftar perubahan file dalam revisi REV
sumber
-n
/--no-status
juga.hg status --no-status --change REV
hg status --rev REV~1:REV
yang biasa saya lakukan.hg status --change .
Hapus saja
p
dari Andahg log -vpr
akan menampilkan daftar file.-p
Berarti tunjukkan tambalan. Anda juga dapat menggunakan templat untuk memformat keluaran sesuai selera Anda.sumber
hg status --change .
bekerja lebih baik dan memberikan awalan tindakan file (A \ M \ D dll) dan jalur relatif yang lebih baikSaya tahu pertanyaannya adalah untuk satu set perubahan, tetapi jika Anda ingin semua file dimodifikasi untuk berbagai rangkaian perubahan, Anda dapat melakukannya
sumber
hg log -r BEGIN:END --template "{files}\n"
seperti @ geoffrey-zheng dan @ton menulis dua tahun lalu !!!hg status --rev BEGIN --rev END
adalah: 1. lebih mudah diingat daripadahg log -r BEGIN:END --template "{files}\n"
; 2. mencetak file dalam baris terpisah tanpa menggunakansed
(@Eric Lawler) ataujoin()
(@Foxichu); 3. tanpa-m
bendera, ini tidak hanya menampilkan file yang dimodifikasi, tetapi juga ditambahkan dan dihapus (pewarnaan standar yang bagus juga berlaku di sini); 4. ada-a
dan-r
bendera yang memungkinkan penyaringan berbeda; 5. Jika seseorang tidak menginginkan status awalan, ada-n
opsi yang menekannya.Revisi Komitmen Saat Ini
.
adalah singkatan dari rev saat ini, seperti@HEAD
di GitRevisi Belum Terikat Saat Ini
Revisi yang Dilakukan Sewenang-wenang
sumber
Temukan pertanyaan ini melalui Googling untuk konsep serupa. Untuk menampilkan semua file yang diubah melalui serangkaian rangkaian perubahan, semudah:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
akan menunjukkan kepada Anda daftar setiap file yang diubah atau ditambahkan di setiap set perubahan, dari [mulai rev] hingga [akhir rev], dengan setiap file perubahan di baris baru. Tukar{file_mods}{file_adds}
dengan{files}
untuk menampilkan semua file yang dimodifikasi, ditambahkan, atau dihapus.sed -e 's/ /\n/g'
akan membagi semua file untuk ditampilkan pada baris terpisah dansort
akan, er, mengurutkan daftar untuk Anda sehingga kami dapat memfilter daftar dengan uniquniq
akan memfilter daftar untuk menghapus duplikat — file yang diubah di lebih dari satu revisi.sumber
--template
Solusi berbasis A tanpa kekurangan ini dapat dibangun menggunakanjoin()
seperti yang disarankan oleh @Foxichu.Saya tahu pertanyaan ini adalah pertanyaan lama dan saya terkejut tidak ada yang baru saja menawarkan formulir kode yang dimodifikasi OP. Saya mendapat daftar file yang dimodifikasi / ditambahkan / dihapus (tidak berlabel yang mana) dengan hanya menjalankan
hg log -v
. Atau apa yang sebenarnya saya perlukanhg log -v -l5
untuk melihat file yang telah dimodifikasi / ditambahkan / dihapus dalam 5 komit terakhir (termasuk yang belum saya dorong ke repo).sumber
Jika Anda seperti kebanyakan toko, Anda menggunakan sistem tiket untuk melacak perubahan. Jika Anda mengetahui nomor tiket dan ingin menemukan semua komit yang terkait dengan tiket itu (dengan asumsi Anda menyertakan nomor tiket di pesan komit), Anda dapat menggunakan:
Ini menampilkan semua revisi yang terkait dengan tiket. Namun, itu tidak mencantumkan file. Anda dapat menggunakan salah satu jawaban di atas untuk mendapatkan daftar file yang terkait dengan revisi.
Untuk membuatnya lebih sederhana, dengan menggabungkan info dari jawaban sebelumnya, Anda dapat melakukan hal berikut untuk mencari komit, termasuk file yang diubah:
sumber