From bb23c1e8122ef14291fbbaa2ec5987f3fa28a6af Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 25 Mar 2013 17:11:10 +0100 Subject: [PATCH] Fixed issue #1716: TortoiseGitBlame added line parameter Signed-off-by: Sven Strickroth --- doc/source/en/TortoiseGit/tsvn_app_automation.xml | 4 +--- src/Changelog.txt | 1 + src/TortoiseGitBlame/TortoiseGitBlameDoc.cpp | 7 ++++++- src/TortoiseGitBlame/TortoiseGitBlameDoc.h | 3 ++- src/TortoiseGitBlame/TortoiseGitBlameView.cpp | 1 + src/TortoiseProc/Commands/BlameCommand.cpp | 6 +++++- 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/doc/source/en/TortoiseGit/tsvn_app_automation.xml b/doc/source/en/TortoiseGit/tsvn_app_automation.xml index 50302ab38..49e1398a6 100644 --- a/doc/source/en/TortoiseGit/tsvn_app_automation.xml +++ b/doc/source/en/TortoiseGit/tsvn_app_automation.xml @@ -459,13 +459,11 @@ Don't touch these lines: If the option is set TortoiseGitBlame ends at that revision. - diff --git a/src/Changelog.txt b/src/Changelog.txt index 373e6db24..ece55e6d3 100644 --- a/src/Changelog.txt +++ b/src/Changelog.txt @@ -29,6 +29,7 @@ Released: unreleased * .mailmap is now used for Log-Dialog Statistics * Fixed issue #1610: Average values on statistics dialog graph * Fixed issue #1708: Merge dialog have no saving of log message + * Fixed issue #1716: TortoiseGitBlame added line parameter == Bug Fixes == * Fixed issue #1642: Incorrect behavior if repo is located on root of drive diff --git a/src/TortoiseGitBlame/TortoiseGitBlameDoc.cpp b/src/TortoiseGitBlame/TortoiseGitBlameDoc.cpp index 6d9d5e863..279eff650 100644 --- a/src/TortoiseGitBlame/TortoiseGitBlameDoc.cpp +++ b/src/TortoiseGitBlame/TortoiseGitBlameDoc.cpp @@ -53,6 +53,7 @@ CTortoiseGitBlameDoc::CTortoiseGitBlameDoc() { m_bFirstStartup = true; m_IsGitFile = FALSE; + m_lLine = 1; } CTortoiseGitBlameDoc::~CTortoiseGitBlameDoc() @@ -66,14 +67,16 @@ BOOL CTortoiseGitBlameDoc::OnNewDocument() BOOL CTortoiseGitBlameDoc::OnOpenDocument(LPCTSTR lpszPathName) { CCmdLineParser parser(AfxGetApp()->m_lpCmdLine); - if(parser.HasVal(_T("rev")) && m_bFirstStartup) + if (m_bFirstStartup) { m_Rev=parser.GetVal(_T("rev")); + m_lLine = parser.GetLongVal(_T("line")); m_bFirstStartup = false; } else { m_Rev.Empty(); + m_lLine = 1; } return OnOpenDocument(lpszPathName,m_Rev); @@ -206,6 +209,8 @@ BOOL CTortoiseGitBlameDoc::OnOpenDocument(LPCTSTR lpszPathName,CString Rev) } } pView->UpdateInfo(); + if (m_lLine > 0) + pView->GotoLine(m_lLine); } return TRUE; diff --git a/src/TortoiseGitBlame/TortoiseGitBlameDoc.h b/src/TortoiseGitBlame/TortoiseGitBlameDoc.h index bab6aa302..331d61de1 100644 --- a/src/TortoiseGitBlame/TortoiseGitBlameDoc.h +++ b/src/TortoiseGitBlame/TortoiseGitBlameDoc.h @@ -1,6 +1,6 @@ // TortoiseGit - a Windows shell extension for easy version control -// Copyright (C) 2008-2011 - TortoiseGit +// Copyright (C) 2008-2011,2013 - TortoiseGit // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -41,6 +41,7 @@ public: CString m_CurrentFileName; CString m_TempFileName; CString m_Rev; + long m_lLine; // Operations BOOL m_IsGitFile; diff --git a/src/TortoiseGitBlame/TortoiseGitBlameView.cpp b/src/TortoiseGitBlame/TortoiseGitBlameView.cpp index 3b6ee1ddf..db3e464b7 100644 --- a/src/TortoiseGitBlame/TortoiseGitBlameView.cpp +++ b/src/TortoiseGitBlame/TortoiseGitBlameView.cpp @@ -1868,6 +1868,7 @@ void CTortoiseGitBlameView::OnViewToggleFollowRenames() CTortoiseGitBlameDoc *document = (CTortoiseGitBlameDoc *) m_pDocument; if (!document->m_CurrentFileName.IsEmpty()) { + document->m_lLine = (LONG)SendEditor(SCI_GETFIRSTVISIBLELINE) + 1; theApp.m_pDocManager->OnFileNew(); document->OnOpenDocument(document->m_CurrentFileName, document->m_Rev); } diff --git a/src/TortoiseProc/Commands/BlameCommand.cpp b/src/TortoiseProc/Commands/BlameCommand.cpp index afbe68284..e6b8820fd 100644 --- a/src/TortoiseProc/Commands/BlameCommand.cpp +++ b/src/TortoiseProc/Commands/BlameCommand.cpp @@ -24,7 +24,11 @@ bool BlameCommand::Execute() { - CAppUtils::LaunchTortoiseBlame(orgCmdLinePath.GetWinPath(), parser.GetVal(_T("endrev")) ,_T("")); + CString params; + if (parser.HasVal(_T("line"))) + params.Format(_T("/line:%ld"), parser.GetLongVal(_T("line"))); + + CAppUtils::LaunchTortoiseBlame(orgCmdLinePath.GetWinPath(), parser.GetVal(_T("endrev")), params); return TRUE; } -- 2.11.4.GIT