This tool can be used to print a summary of the logging information of several repositories. This gives with respect to software repository activity a good overview on what tasks were done over a given timespan.
Here are some key terms used in this manual:
show logs of a given darcs repository for the current year:
repo-loginfo.py --darcs --newer [year]-01-01 --dir [repository-directory]
the same but with number of deleted and added lines:
repo-loginfo.py --darcs --newer [year]-01-01 --changes --dir [repository-directory]
the same but show only a single user:
repo-loginfo.py --darcs --newer [year]-01-01 --changes --author [author] --dir [repository-directory]
Note that the author is a regular expression, so you can specify something like "[Ss]mith" in order to catch all of "Smith", "smith", "smith@somecompany.com".
The following examples can be executed on host aragon.acc.bessy.de.
This command queries the MultiCAN repository and shows all changes of 2009:
repo-loginfo.py --newer 2009-01-01 --darcs --dir /opt/repositories/controls/darcs/epics/support/mcan/base-3-14
These are some lines from the output of this command:
2009-04-27 11:52 benjamin.franksen@bessy.de upgraded module soft to version R2-5 (which no longer contains cvtRecordApp) 2009-04-27 11:53 benjamin.franksen@bessy.de TAG R2-3-9 2009-05-11 11:03 benjamin.franksen@bessy.de re-enable CI_LOST_IRQ_FIX (in vcan driver)
This command queries the BII-Controls repository and shows all changes from 2009 with the number of changed lines:
repo-loginfo.py --newer 2009-01-01 --darcs --changes --dir /opt/repositories/controls/darcs/epics/ioc/BII-Controls/base-3-14
These are some lines from the output of this command:
2009-01-06 11:29 Bernhard.Kuner@bessy.de -3 3 Update: remove GPNIs from all panels, Fix: remove debug output (VacuumApp) 2009-01-07 11:47 Thomas.Birke@bessy.de -317 19 fixed vacuum sub-panels for W7* (WLS7App, HMIApp) 2009-01-07 18:47 Thomas.Birke@bessy.de -4 7 cleaned up command-bit handling - esp. for kicker/septa (PowerSupApp) 2009-01-08 13:30 Bernhard.Kuner@bessy.de -1 71 Add laserMotorServicePanel.mfp (MotorApp)
Query the MultiCAN repository, show all changes of 2007 made by user "pfeiffer":
repo-loginfo.py --newer 2007-01-01 --older 2008-01-01 --author '[Pp]feiffer' --darcs --dir /opt/repositories/controls/darcs/epics/support/mcan/base-3-13
These are some lines from the output of this command:
2007-01-18 15:54 pfeiffer@mail.bessy.de TAG R1-17-1 2007-02-06 12:08 Goetz.Pfeiffer@bessy.de The inline documentation had to be changed: the 2007-10-09 11:58 Goetz.Pfeiffer,15.8.204,6392-4862,@bessy.de support for VCAN2 and VCAN4 was slightly improved
Query the MultiCAN repository, show all changes of 2007 made by user "pfeiffer" without printing the author and with changed lines:
repo-loginfo.py --newer 2007-01-01 --older 2008-01-01 --author '[Pp]feiffer' --no-author --changes --darcs --dir /opt/repositories/controls/darcs/epics/support/mcan/base-3-13
These are some lines from the output of this command:
2007-01-18 14:45 -2 24 time stamps of monitored objects are now printed too 2007-01-18 15:17 -2 4 a simple type error was corrected 2007-01-18 15:54 0 0 TAG R1-17-1 2007-02-06 12:08 -25 21 The inline documentation had to be changed: the
Query both MultiCAN repositories, base-3-13 and base-3-14 and show all changes of 2007:
repo-loginfo.py --newer 2007-01-01 --older 2008-01-01 --repos 'MCAN-3.13:/opt/repositories/controls/darcs/epics/support/mcan/base-3-13:darcs,MCAN-3.14:/opt/repositories/controls/darcs/epics/support/mcan/base-3-14:darcs'
These are some lines from the output of this command:
2007-01-10 14:48 benjamin.franksen@bessy.de MCAN-3.14 beautified info messages (mCANSupport) 2007-01-12 15:03 benjamin.franksen@bessy.de MCAN-3.14 TAG R2-0 2007-01-18 14:45 pfeiffer@mail.bessy.de MCAN-3.13 time stamps of monitored objects are now printed too 2007-02-06 14:35 Goetz.Pfeiffer@bessy.de MCAN-3.13 TAG R1-17-2 2007-10-09 12:08 Bernhard.Kuner@bessy.de MCAN-3.13 Add vtest.o to MultiCAN library in base3-13
Query both MultiCAN repositories, base-3-13 and base-3-14 and show all changes of 2007 but this time using a REPOSPECIFICATIONFILE:
echo "MCAN-3.13 /opt/repositories/controls/darcs/epics/support/mcan/base-3-13 darcs" > /tmp/REPOSPEC echo "MCAN-3.14 /opt/repositories/controls/darcs/epics/support/mcan/base-3-14 darcs" >> /tmp/REPOSPEC repo-loginfo.py --newer 2007-01-01 --older 2008-01-01 --repos-file /tmp/REPOSPEC
This is the content of the REPOSPEC file:
MCAN-3.13 /opt/repositories/controls/darcs/epics/support/mcan/base-3-13 darcs MCAN-3.14 /opt/repositories/controls/darcs/epics/support/mcan/base-3-14 darcs
And these are some lines from the output of this command:
2007-01-12 15:03 benjamin.franksen@bessy.de MCAN-3.14 TAG R2-0 2007-01-18 14:45 pfeiffer@mail.bessy.de MCAN-3.13 time stamps of monitored objects are now printed too 2007-01-18 15:17 pfeiffer@mail.bessy.de MCAN-3.13 a simple type error was corrected 2007-11-26 09:51 Ralf Hartmann <Ralf.Hartmann@bessy.de> MCAN-3.14 TAG R2-2-1
| --version | print the version number of the script |
| -h, --help | print a short help |
| --summary | print a one-line summary of the script function |
| --doc | create online help in restructured text format. Use "./repo-loginfo.py --doc | rst2html" to create html-help" |
| --dry-run | in this case the program doesn't do anything but only shows which directories it would examine and what version control commands it would call. |
| --darcs | specify that the repository is a darcs repository. |
| --hg | specify that the repository is a mercurial repository. |
| --changes | additionally display the number of removed and added lines in the patch. This simply counts the "-" and "+" characters at the start of lines when the changesets are printed in the unified diff format. |
| --no-author | do not print the author, this is useful when you have filtered all changeset from an author and do not want to have this author's name printed over and over again. |
| --fetch-all | when this option is given, the filtering of dates is done by this script, not by the version control system. The processing of the output takes longer this way, but it may be that some date specifications can be given more precise this way. |
| --dir DIRECTORY | |
| specify the directory where the repository can be found. | |
| --reponame REPONAME | |
| specify a name for the repository. This is just a short name that is printed along the log information. This option is useful if you collect log information of several repositories and want to collect them in a single file. | |
| --newer DATESPEC | |
| print only changes at or after the given date. | |
| --older DATESPEC | |
| print only changes at or before the given date. | |
| --repos REPOSPECIFICATION | |
| this option can be used to specify more than one repository. The changes for all given repositories are collected and printed, sorted by their date. The REPOSPECIFICATION consists of parts that are separated by commas, each part consists of a repository name, a directory, and a version control type, each specified by a colon. See also the section "Examples" for an example on this option. | |
| --repos-file REPOSPECIFICATIONFILE | |
| this option can also be used to specify more than one repository. In this case the specifications of the repositories are in the given file. Each line has (in this order and separated by spaces) the repository name, the directory of the repository and the version control type. See also the section "Examples" for an example on this option. | |