git2wrapC++20 wrapper for libgit2 | 
          
| git clone git://git.dimitrijedobrota.com/git2wrap.git | 
| Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | 
| commit | 09cdcdc2204d679e304b7416dd178d0736fa8016 | 
| parent | e00ca71bdad927e3dc219c982454f6b3c574a3f2 | 
| author | Dimitrije Dobrota < mail@dimitrijedobrota.com > | 
| date | Sat, 10 May 2025 16:57:04 +0200 | 
Add branch and repostiory flags
| M | include/git2wrap/branch.hpp | | | ++++++ | 
| M | include/git2wrap/object.hpp | | | + | 
| M | include/git2wrap/repository.hpp | | | +++++++++++++++++++ -- | 
| M | include/git2wrap/types.hpp | | | - | 
| M | source/repository.cpp | | | ++++++++ ----- | 
5 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/ include/git2wrap/branch.hpp b/ include/git2wrap/branch.hpp
@@ -1,5 +1,7 @@
#pragma once
          #include <based/enum/enum_flag.hpp>
          #include <based/types/types.hpp>
          #include <git2.h>
          #include "git2wrap/git2wrap_export.hpp"
        
        
          @@ -17,6 +19,8 @@ 
          public:
        
        
            );
            branch(reference ref, git_branch_t type);
            BASED_DECLARE_ENUM_FLAG(flags_list, based::u8, local, remote, all)
            operator bool() const { return m_ref; }  // NOLINT
            [[nodiscard]] branch dup() const;
          
          @@ -31,6 +35,8 @@ 
          private:
        
        
            std::string m_name;
          };
          BASED_DEFINE_ENUM_FLAG_CLASS(branch, flags_list, based::u8, local, remote, all)
          class branch_iterator
          {
          public:
        
        diff --git a/ include/git2wrap/object.hpp b/ include/git2wrap/object.hpp
@@ -1,5 +1,6 @@
#pragma once
          #include <based/enum/enum.hpp>
          #include <git2.h>
          #include "git2wrap/buf.hpp"
        
        diff --git a/ include/git2wrap/repository.hpp b/ include/git2wrap/repository.hpp
@@ -1,5 +1,7 @@
#pragma once
          #include <based/enum/enum_flag.hpp>
          #include <based/types/types.hpp>
          #include <git2.h>
          #include "git2wrap/blob.hpp"
        
        
          @@ -20,6 +22,10 @@ 
          public:
        
        
            using init_options = git_repository_init_options;
            using clone_options = git_clone_options;
            BASED_DECLARE_ENUM_FLAG(
                flags_open, based::u8, no_search, cross_fs, bare, no_dotgit, from_env
            )
            explicit repository(git_repository* repo);
            explicit repository(repositoryPtr repo);
            repository(const char* path, unsigned is_bare);
        
        
          @@ -35,7 +41,7 @@ 
          public:
        
        
            static repository open(const char* path);
            static repository open(
                const char* path, unsigned flags, const char* ceiling_dirs
                const char* path, flags_open::type flags, const char* ceiling_dirs
            );
            object revparse(const char* spec) const;
        
        
          @@ -43,7 +49,7 @@ 
          public:
        
        
            [[nodiscard]] blob blob_lookup(const oid& objid) const;
            [[nodiscard]] tag tag_lookup(const oid& objid) const;
            [[nodiscard]] branch_iterator branch_begin(git_branch_t list_flags) const;
            [[nodiscard]] branch_iterator branch_begin(branch::flags_list::type flags) const;
            [[nodiscard]] branch_iterator branch_end() const;
            void tag_foreach(tag_foreach_cb callback, void* payload) const;
        
        
          @@ -52,4 +58,15 @@ 
          private:
        
        
            repositoryPtr m_repo;
          };
          BASED_DEFINE_ENUM_FLAG_CLASS(
              repository,
              flags_open,
              based::u8,
              no_search,
              cross_fs,
              bare,
              no_dotgit,
              from_env
          )
          }  // namespace git2wrap
        
        diff --git a/ include/git2wrap/types.hpp b/ include/git2wrap/types.hpp
@@ -3,7 +3,6 @@
#include <functional>
          #include <memory>
          #include <based/enum/enum.hpp>
          #include <git2.h>
          // NOLINTBEGIN
        
        diff --git a/ source/repository.cpp b/ source/repository.cpp
          @@ -64,13 +64,14 @@ 
          repository repository::open(const char* path)
        
        
          }
          repository repository::open(
              const char* path, unsigned flags, const char* ceiling_dirs
              const char* path, flags_open::type flags, const char* ceiling_dirs
          )
          {
            git_repository* repo = nullptr;
            const auto err =
                error_code_t(git_repository_open_ext(&repo, path, flags, ceiling_dirs));
            const auto err = error_code_t(
                git_repository_open_ext(&repo, path, flags.value, ceiling_dirs)
            );
            if (err == error_code_t::ok) {
              return repository(repo);
        
        
          @@ -145,11 +146,13 @@ 
          branch_iterator repository::branch_end() const  // NOLINT
        
        
            return branch_iterator();
          }
          branch_iterator repository::branch_begin(git_branch_t list_flags) const
          branch_iterator repository::branch_begin(branch::flags_list::type flags) const
          {
            git_branch_iterator* iter = nullptr;
            if (git_branch_iterator_new(&iter, m_repo.get(), list_flags) != 0) {
            if (git_branch_iterator_new(&iter, m_repo.get(), git_branch_t(flags.value))
                != 0)
            {
              throw error<error_code_t::error>();
            }