2012-06-18 12 views
10

Mercurial'da 2.000.000 satırlık kod uygulamasına sahibiz. Açıkçası bu depoda çok fazla değerli bilgi var.Mermi deposumda "datamine" için hangi araçlar veya teknikler mevcuttur?

Bu bilgilerin bazılarını bulmak için herhangi bir araç veya teknik var mı?

Örneğin, proje tarihi boyunca, en fazla beş dosya hangi değişiklikleri gördü? Bir yıl öncesine göre beş dosya hangisi daha farklı? Herhangi bir özel kod satırı çok fazla sorun mu yaşadı?

Bu tür bir şeyle ilgileniyorum ve daha fazlası.

Bu tür bilgileri depomuzdan çıkarmanın bir yolu var mı?

+2

Bu gerçekten [etiket: veri madenciliği] değil. Diğer sürüm kontrol sistemleri için StatSVN/StatCVS tarafından sağlandığı gibi önemsiz, basit istatistikleri istiyorsunuz. Ayrıca, bu bir programlama sorusu değildir. –

+2

Tamam, yeterince adil. Peki bu önemsiz istatistikleri mercurialden nasıl alırım? –

+0

Nick, kendi kendine yuvarlanmadan işe yarar bir şey buldun mu? – Rory

cevap

10

Bunu yapmak için özel olarak yapılmış herhangi bir araç bilmiyorum, ancak Mercurial'ın günlük şablonları sistemden veri almak için çok güçlü. Geçmişte analizi bu tür bir parça yaptık ve benim yaklaşım oldu:

  1. Kullanım hg log bazı uygun formatta (benim durumumda xml) için kaydedilmesini dökümü
  2. aktarmak için bir komut dosyası yazın

    mystyle.txt: (şablon)

    şey Queryable içine xml

Burada yola çıkmaya bir örnek hg log komut var (veritabanı, ya da sadece çok büyük değil, doğrudan eğer XML çalışmak) Şablon ve tarih aralığını kullanarak

changeset = '<changeset>\n<user>{author|user}</user>\n<date>{date|rfc3339date|escape}</date>\n<files>\n{file_mods}{file_adds}{file_dels}</files>\n<rev>{node}</rev>\n<desc>{desc|strip|escape}</desc>\n<branch>{branches}</branch><diffstat>{diffstat}</diffstat></changeset>\n\n' 
file_mod = '<file action="modified">{file_mod|escape}</file>\n' 
file_add = '<file action="added">{file_add|escape}</file>\n' 
file_del = '<file action="deleted">{file_del|escape}</file>\n' 

Örnek çağırma:

hg --repository /path/to/repo log -d "2012-01-01 to 2012-06-01" --no-merges --style mystyle.txt 
4

deneyin yerleşik hg churn uzantısı. Ben örneğin için kullanmak gibi bir şey, böyle kaydedilmesini aylık çubuk grafiğini görmektir:

> hg churn -csf '%Y-%m' 

2014-02  65 ************************************* 
2014-03  22 ************* 
2014-04  52 ****************************** 
2014-05  67 *************************************** 
2014-06  31 ****************** 
2014-07  29 ***************** 
2014-08  29 ***************** 
2014-09  61 *********************************** 
2014-10  36 ********************* 
2014-11  23 ************* 
2014-12  32 ****************** 
2015-01  60 *********************************** 
2015-02  20 ************ 

(Eğer yeterince sık komutunu kullanarak konum bulursanız adlar kurmak isteyebilirsiniz)

İlgili konular