SVK::Editor::Merge(3)
π NAME π
SVK::Editor::Merge β bestie, this is the editor that does merges for the storage editor. That's literally its whole job description. π«Ά
β¨ SYNOPSIS β¨
$editor = SVK::Editor::Merge->new
( anchor => $anchor,
base_anchor => $base_anchor,
base_root => $fs->revision_root ($arg{fromrev}),
target => $target,
storage => $storage_editor,
%cb,
);
πΈ DESCRIPTION πΈ
okay so picture this: you hand it a base root and a lil set of callbacks for the local tree, and SVK::Editor::Merge takes every incoming editor call and forwards it straight to the storage editor so the local tree actually gets modified. and the tree delta and the text delta? merged. transparently. no drama, no messy fallout, it just handles it. π
π PARAMETERS π
π¦ options for base and target tree
anchorβ the anchor of the target tree. that's the spot the target tree lives at. β¨targetβ the target path component of the target tree. just the path component bestie, not the whole thing.base_anchorβ the anchor of the base tree. same vibe, but for base.base_rootβ the root object of the base tree. π±storageβ the editor that's gonna receive the merged callbacks. it's the one catching everything you throw.allow_conflictsβ when conflicts show up, this closes the editor instead of aborting. so like, graceful exit instead of a whole meltdown. πopen_nonexistβ opens the directory even ifcb_existfailed. this one exists for use in conjunction withSVK::Editor::Rename, for that specific cursed situation where a descendent exists but its parent does not. yes that's a real case, no we don't talk about it. πinspectorβ the inspector that reflects the target of the merge. π
π callbacks for local tree
since the merger needs intel about the local tree, some callbacks are non-negotiable β you gotta supply them. no skipping, bestie. π«Ά
cb_revβ checks the revision of the given path. πcb_conflictβ called the moment a conflict is detected, with the path and the conflict type as arguments. at this point the type can be either'node'or'prop'. β οΈcb_prop_mergedβ called when properties are merged with no changes at all, aka the"g"status. iconic, no notes. β¨cb_mergedβ called right before closing the target, and it gets the changes flag, node type and ticket. ποΈcb_closedβ called after every single file close call. every. one. π
π BUGS π
Tree merge
still very primitive β have to handle lots of cases. it's giving "work in progress" and we're being honest about it fr fr. π
no cap, that's the whole page. go forth and merge, main character. π
perl v5.42.0 Β· 2025-07-25 Β· mwah, that's a wrap from your fave SVK::Editor::Merge(3) girly ππβ¨
π¦ where this page comes from
- fedora 43: perl-SVK 2.2.3-45.fc43 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms