File indexing completed on 2025-03-09 05:11:43
0001 /* 0002 SPDX-FileCopyrightText: 2021 Hamed Masafi <hamed.masfi@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libkommit_export.h" 0010 0011 #include <git2/checkout.h> 0012 0013 #include <QString> 0014 0015 namespace Git 0016 { 0017 0018 class LIBKOMMIT_EXPORT CheckoutOptions 0019 { 0020 public: 0021 // enum CheckoutStrategy { 0022 // None = 0, 0023 // Safe = (1u << 0), 0024 // Force = (1u << 1), 0025 // RecreateMissing = (1u << 2), 0026 // AllowConflicts = (1u << 4), 0027 // RemoveUntracked = (1u << 5), 0028 // RemoveIgnored = (1u << 6), 0029 // UpdateOnly = (1u << 7), 0030 // DontUpdateIndex = (1u << 8), 0031 // NoRefresh = (1u << 9), 0032 // SkipUnmerged = (1u << 10), 0033 // UseOurs = (1u << 11), 0034 // UseTheirs = (1u << 12), 0035 // DisablePathspecMatch = (1u << 13), 0036 // SkipLockedDirectories = (1u << 18), 0037 // DontOverwriteIgnored = (1u << 19), 0038 // ConflictStyleMerge = (1u << 20), 0039 // ConflictStyleDiFF3 = (1u << 21), 0040 // DontRemoveExisting = (1u << 22), 0041 // DontWriteIndex = (1u << 23), 0042 // UpdateSubmodules = (1u << 16), 0043 // UpdateSubmodulesIfChanged = (1u << 17), 0044 // }; 0045 0046 bool mSafe{false}; 0047 bool mForce{false}; 0048 bool mRecreateMissing{false}; 0049 bool mAllowConflicts{false}; 0050 bool mRemoveUntracked{false}; 0051 bool mRemoveIgnored{false}; 0052 bool mUpdateOnly{false}; 0053 bool mDontUpdateIndex{false}; 0054 bool mNoRefresh{false}; 0055 bool mSkipUnmerged{false}; 0056 bool mUseOurs{false}; 0057 bool mUseTheirs{false}; 0058 bool mDisablePathspecMatch{false}; 0059 bool mSkipLockedDirectories{false}; 0060 bool mDontOverwriteIgnored{false}; 0061 bool mConflictStyleMerge{false}; 0062 bool mConflictStyleDiFF3{false}; 0063 bool mDontRemoveExisting{false}; 0064 bool mDontWriteIndex{false}; 0065 bool mUpdateSubmodules{false}; 0066 bool mUpdateSubmodulesIfChanged{false}; 0067 0068 QString mAncestorLabel; 0069 QString mOurLabel; 0070 QString mTheirLabel; 0071 0072 CheckoutOptions(); 0073 0074 void applyToCheckoutOptions(git_checkout_options *opts) const; 0075 }; 0076 0077 } // namespace Git