TGitBlame: Allow to search both directions
[TortoiseGit.git] / src / GitWCRev / GitWCRev.h
blob1b14c6c5a2940fecd58893c78beb8fb90e08c5f3
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2017 - TortoiseGit
4 // Copyright (C) 2003-2015 - TortoiseSVN
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software Foundation,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #pragma once
21 /**
22 * \ingroup GitWCRev
23 * This structure is used as the status baton for WC crawling
24 * and contains all the information we are collecting.
26 struct GitWCRev_t
28 GitWCRev_t()
29 : HasMods(FALSE)
30 , HasUnversioned(FALSE)
31 , bIsGitItem(FALSE)
32 , bNoSubmodules(FALSE)
33 , bHasSubmodule(FALSE)
34 , bHasSubmoduleNewCommits(FALSE)
35 , bHasSubmoduleMods(FALSE)
36 , bHasSubmoduleUnversioned(FALSE)
37 , bIsTagged(FALSE)
38 , bIsUnborn(FALSE)
39 , HeadTime(0)
41 HeadHash[0] = '\0';
42 HeadHashReadable[0] = '\0';
45 char HeadHash[GIT_OID_RAWSZ];
46 char HeadHashReadable[GIT_OID_HEXSZ + 1];
47 std::string HeadAuthor;
48 std::string HeadEmail;
49 __time64_t HeadTime;
50 BOOL HasMods; // True if local modifications found
51 BOOL HasUnversioned; // True if unversioned items found
52 BOOL bIsGitItem; // True if the item is under Git version control
53 BOOL bNoSubmodules; // If TRUE if submodules should be omitted
54 BOOL bHasSubmodule; // True if working tree has submodules
55 BOOL bHasSubmoduleNewCommits; // True if HEAD of submodule does not match committed rev. in parent repo
56 BOOL bHasSubmoduleMods; // True if local modifications in an submodule found
57 BOOL bHasSubmoduleUnversioned; // True if unversioned items in submodule found
58 BOOL bIsTagged; // True if HEAD is tagged
59 BOOL bIsUnborn; // True if branch in unborn
60 std::set<std::string> ignorepatterns; // a list of file patterns to ignore