Memformat Output Log SVN

3

Saya ingin mengambil pesan log untuk file yang berkomitmen untuk svn. Saya menggunakan perintah berikut saat ini:

 svn --non-interactive log "myfile.c" | sed -e "s/[\-]//g"'   

Outputnya adalah:

r42153 | sam | 2012-03-02 14:51:53 -0800 (Fri, 02 Mar 2012) | 1 line

Update to code.  

Saya ingin menyingkirkan baris pertama "r42153 | sam | ...." dan hanya menampilkan pesan log.

Bagaimana saya bisa melakukan ini?

merokok
sumber

Jawaban:

1

gunakan | grep -v "what you don't want to include"untuk meninggalkan garis yang tidak Anda inginkan. Namun, mencoba untuk meninggalkan apa pun \nhanya dengan meninggalkan semuanya, jadi jangan lakukan itu.

Rebecca Dessonville
sumber
Terima kasih @Dez. Saya lupa tentang grep. Saya akhirnya menggunakan grep -v "| [0-9] \ + line [s] \? $"
smokinguns
2

Anda dapat membuang jalur yang berguna dari pesan komit Anda saat menggunakan grep. SVN menyediakan perintah propget di luar kotak:

menggunakan

$ svn propget svn:log --revprop -r R [TARGET]

untuk mendapatkan pesan komit

atau

$ svn propget svn:log --revprop -r R [TARGET] --xml

untuk mendapatkannya dalam XML.

TARGET adalah path ke repositori dan dapat dihapus id Anda dalam copy pekerjaan.

Denis Barmenkov
sumber
Ini seharusnya jawaban yang diterima :)
Sebi
0

Anda dapat menggunakan | sed -e ':a;N;$!ba;s/-\+\(\n[^\n]*\n\)\?//g'untuk menghapus semua "---" dengan treir baris berikutnya.

aidarbiktimirov
sumber
0

Selama Anda mencatat satu revisi, Anda bisa menggunakannya

svn log -rXXXX | tail -n+4 | head -n-1

untuk menyingkirkan semuanya kecuali pesan.

Tgr
sumber