Implement blame output parser based on the porcelain format

Use 'git blame -p', which is designed for machine consumption.

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Support for git blame options move (-M), copy (-C) and whitespace (-w)

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Use cache of the log to retrieve commits which appear only in the blame output

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Create blame popup menu dynamically, support multiple parents

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Create log only for blamed commits

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Use a mapping of the file line to the log index instead of an ID

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Use line to log index mapping only when necessary

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Display only line numbers which correspond to a line in the blame output

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Extract getter for parent hashes

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Add menu entry blame previous for TortoiseGitBlame

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Building of command lines are independent between commands

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Show only relevant parents as menu entries A parent is relevant if it contains changes which are part of the blame output.

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Create commands based on the selected parents

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Add option 'Show complete log'

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Add option to show file name and original line number

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Survive blame line without corresponding log entry

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Forget all graph details when the log is cleared In TortoiseGitBlame the contents of the log may change, the graph should not be affected of preceding log contents

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Enforce redraw with AdjustLayout Now even the first log entry selection shows the complete list of parents.

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Use result iterator for efficiency

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>
Hide graph column if only the blamed revisions are listed in the log

Signed-off-by: Martin Strauß <MStrauss@MuellerBBM-vas.de>
Signed-off-by: Sven Strickroth <email@cs-ware.de>