2016-05-20 3 views
-2

мне нужно запросить репозиторий Git, так что я в конечном итоге с набором данных из следующей схемы, содержащей все вклады в хранилище:Как я могу запросить репозиторий Git для репозиториев MSR (хранилища программных продуктов)?

user.id, 
user.ip, 
contribution.type, 
timestamp, 
commit.id, 
file, 
branch, 
lines.added, 
lines.deleted 

, например:

u1,127.0.0.1,add,2015-01-01 00:00,c123456,/path/to/index.html,master,100,0 
u1,127.0.0.1,mod,2015-01-01 00:00,c123456,/path/to/page1.html,master,3,6 
u1,127.0.0.1,del,2015-01-01 00:00,c123456,/path/to/page2.html,master,0,200 
u2,127.0.0.2,mod,2015-01-02 00:00,c654321,/path/to/index.html,master,2,2 
u3,127.0.0.3,add,2015-01-03 00:00,c234567,/path/to/topic.html,topic,300,1 
u4,127.0.0.4,mod,2015-01-04 00:00,c765432,/path/to/topic.html,topic,21,1 

Заметим, что одна строка должна представлять один вклад в файл, а не фиксацию, то есть одна фиксация может охватывать несколько строк.

До сих пор я возился с git log -g --numstat --decorate --source --date=iso --no-merges --all --format=%aE,%h,%ad,%gd. Я предполагаю, что мне придется выполнить постпроцесс вывода, чтобы объединить информацию с --name-status (contrib_type и файл) и --numstat (lines.added, lines.deleted) в формат, показанный выше. Кроме того, я еще не понял, как я могу получить IP-адрес - репозитории git записывают эту информацию, когда получают «push»?

ответ

1

Используйте функцию log и преобразуйте данные по своему усмотрению.

Сомневаюсь, что вы найдете все эти сведения - поле user.ip не имеет смысла, потому что коммиты не обязательно в сети.

 Смежные вопросы

  • Нет связанных вопросов^_^