|
KiCad PCB EDA Suite
|
#include <kigit_pcb_merge.h>
Public Member Functions | |
| KIGIT_PCB_MERGE (git_merge_driver_source *aSource, git_buf *aBuf) | |
| virtual | ~KIGIT_PCB_MERGE ()=default |
| int | Merge () |
| std::set< BOARD_ITEM * > & | GetWeModifiedTheyDeleted () |
| std::set< BOARD_ITEM * > & | GetTheyModifiedWeDeleted () |
| std::set< BOARD_ITEM * > & | GetBothModified () |
Static Public Member Functions | |
| static int | Apply (const git_merge_driver_source *aSrc, const char **aPathOut, unsigned int *aModeOut, git_buf *aMergedOut) |
| libgit2 merge-driver apply callback shim. | |
Protected Member Functions | |
| KIGIT_PCB_MERGE_DIFFERENCES | compareBoards (BOARD *aAncestor, BOARD *aOther) |
| void | findSetDifferences (const BOARD_ITEM_SET &aAncestorSet, const BOARD_ITEM_SET &aOtherSet, std::vector< BOARD_ITEM * > &aAdded, std::vector< BOARD_ITEM * > &aRemoved, std::vector< BOARD_ITEM * > &aChanged) |
Private Attributes | |
| git_merge_driver_source * | m_mergeDriver |
| git_buf * | m_result |
| std::set< BOARD_ITEM * > | we_modified_they_deleted |
| std::set< BOARD_ITEM * > | they_modified_we_deleted |
| std::set< BOARD_ITEM * > | both_modified |
Definition at line 36 of file kigit_pcb_merge.h.
|
inline |
Definition at line 39 of file kigit_pcb_merge.h.
References m_mergeDriver, and m_result.
|
virtualdefault |
|
static |
libgit2 merge-driver apply callback shim.
Trampoline used by the libgit2 merge-driver registry.
Registered with the driver registry under the name "kicad-pcb" so .gitattributes entries merge=kicad-pcb route here.
Constructs a KIGIT_PCB_MERGE, runs Merge(), and forwards the path/mode out of the libgit2 source struct.
Definition at line 220 of file kigit_pcb_merge.cpp.
References KIGIT::ApplyMergeDriver().
Referenced by PCB::IFACE::OnKifaceStart().
|
protected |
Definition at line 69 of file kigit_pcb_merge.cpp.
References findSetDifferences(), BOARD::GetItemSet(), KIGIT_PCB_MERGE_DIFFERENCES::m_added, KIGIT_PCB_MERGE_DIFFERENCES::m_changed, and KIGIT_PCB_MERGE_DIFFERENCES::m_removed.
Referenced by Merge().
|
protected |
Definition at line 35 of file kigit_pcb_merge.cpp.
References EDA_ITEM::m_Uuid.
Referenced by compareBoards().
|
inline |
Definition at line 64 of file kigit_pcb_merge.h.
References both_modified.
|
inline |
Definition at line 59 of file kigit_pcb_merge.h.
References they_modified_we_deleted.
|
inline |
Definition at line 54 of file kigit_pcb_merge.h.
References we_modified_they_deleted.
| int KIGIT_PCB_MERGE::Merge | ( | ) |
Definition at line 82 of file kigit_pcb_merge.cpp.
References KIGIT::MERGE_BLOBS::ancestor, KICAD_DIFF::PCB_MERGE_APPLIER::Apply(), both_modified, compareBoards(), KICAD_DIFF::PCB_DIFFER::Diff(), PCB_IO_KICAD_SEXPR::Format(), STRING_FORMATTER::GetString(), KIGIT::LoadMergeBlobs(), KIGIT_PCB_MERGE_DIFFERENCES::m_changed, m_mergeDriver, KIGIT_PCB_MERGE_DIFFERENCES::m_removed, m_result, KIGIT::MERGE_BLOBS::ours, PCB_IO_KICAD_SEXPR_PARSER::Parse(), KICAD_DIFF::KICAD_MERGE_ENGINE::Plan(), KICAD_DIFF::MERGE_PLAN::Resolved(), PCB_IO_KICAD_SEXPR::SetOutputFormatter(), KIGIT::MERGE_BLOBS::theirs, they_modified_we_deleted, traceGit, we_modified_they_deleted, IO_ERROR::What(), and KIGIT::WriteToGitBuf().
|
private |
Definition at line 82 of file kigit_pcb_merge.h.
Referenced by GetBothModified(), and Merge().
|
private |
Definition at line 77 of file kigit_pcb_merge.h.
Referenced by KIGIT_PCB_MERGE(), and Merge().
|
private |
Definition at line 78 of file kigit_pcb_merge.h.
Referenced by KIGIT_PCB_MERGE(), and Merge().
|
private |
Definition at line 81 of file kigit_pcb_merge.h.
Referenced by GetTheyModifiedWeDeleted(), and Merge().
|
private |
Definition at line 80 of file kigit_pcb_merge.h.
Referenced by GetWeModifiedTheyDeleted(), and Merge().