Slightly more generic libpijul::change::Hunk

pmeunier
Sep 15, 2021, 3:31 PM
CBVGAARCMKJ2EARAQCVSPKMB43NATIYEY76BOQJLN7MXDUQVSJBAC

Dependencies

  • [2] RRCSHAYZ Formatting
  • [3] UNZXTNSJ Change text format: order dependencies in the order they were on the channel at record time
  • [4] 352WW5FP Fixing a bug when deleting conflict resolutions
  • [5] NYOF5766 track file encoding in the record, including change text for file adds
  • [6] XR7MNOMU file encoding in updates
  • [7] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [8] CCFJ7VO3 Renaming "Record" to "Hunk" in the changes
  • [9] ZSF3YFZT encoded file deletion
  • [10] Q3GU26WD merge with changes from sanakirja v1.1.2
  • [11] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [*] VO5OQW4W Removing anyhow in libpijul

Change contents

  • edit in "libpijul/src/diff/replace.rs" at line 113
    [3.782992]
    [3.782992]
    byte: Some(bytes_pos(lines_b, from_new)),
  • replacement in "libpijul/src/diff/delete.rs" at line 25
    [3.46][2.3791:3864]()
    self.delete_lines(txn, channel, diff, d, lines_a, r, encoding)?;
    [3.46]
    [3.806121]
    self.delete_lines(txn, channel, diff, d, lines_a, lines_b, r, encoding)?;
  • edit in "libpijul/src/diff/delete.rs" at line 56
    [3.806886]
    [3.806886]
    lines_b: &[Line],
  • edit in "libpijul/src/diff/delete.rs" at line 70
    [3.807373]
    [3.807373]
    byte: Some(bytes_pos(lines_b, d[r].new)),
  • edit in "libpijul/src/diff/delete.rs" at line 84
    [3.808267]
    [3.808267]
    byte: Some(bytes_pos(lines_b, d[r].new)),
  • edit in "libpijul/src/diff/delete.rs" at line 279
    [3.814383]
    [3.814383]
    byte: Some(bytes_pos(lines_b, new)),
  • edit in "libpijul/src/change.rs" at line 468
    [3.844784]
    [3.844784]
    impl<A> Atom<A> {
    pub fn as_newvertex(&self) -> &NewVertex<A> {
    if let Atom::NewVertex(n) = self {
    n
    } else {
    panic!("Not a NewVertex")
    }
    }
    }
  • edit in "libpijul/src/change.rs" at line 680
    [3.851125]
    [3.851125]
    pub byte: Option<usize>,
  • edit in "libpijul/src/change.rs" at line 682
    [3.851127]
    [3.851127]
    pub type Hunk<Hash, Local> = BaseHunk<Atom<Hash>, Local>;
  • replacement in "libpijul/src/change.rs" at line 686
    [3.851191][3.3719:3748]()
    pub enum Hunk<Hash, Local> {
    [3.851191]
    [3.851222]
    pub enum BaseHunk<Atom, Local> {
  • replacement in "libpijul/src/change.rs" at line 688
    [3.851237][3.851237:851287]()
    del: Atom<Hash>,
    add: Atom<Hash>,
    [3.851237]
    [3.851287]
    del: Atom,
    add: Atom,
  • replacement in "libpijul/src/change.rs" at line 693
    [3.851330][3.851330:851393]()
    del: Atom<Hash>,
    contents: Option<Atom<Hash>>,
    [3.851330]
    [3.851393]
    del: Atom,
    contents: Option<Atom>,
  • replacement in "libpijul/src/change.rs" at line 699
    [3.851438][3.851438:851503]()
    undel: Atom<Hash>,
    contents: Option<Atom<Hash>>,
    [3.851438]
    [3.851503]
    undel: Atom,
    contents: Option<Atom>,
  • replacement in "libpijul/src/change.rs" at line 705
    [3.851546][3.851546:851645]()
    add_name: Atom<Hash>,
    add_inode: Atom<Hash>,
    contents: Option<Atom<Hash>>,
    [3.851546]
    [3.851645]
    add_name: Atom,
    add_inode: Atom,
    contents: Option<Atom>,
  • replacement in "libpijul/src/change.rs" at line 712
    [3.851698][3.851698:851724]()
    name: Atom<Hash>,
    [3.851698]
    [3.851724]
    name: Atom,
  • replacement in "libpijul/src/change.rs" at line 716
    [3.851779][3.851779:851805]()
    name: Atom<Hash>,
    [3.851779]
    [3.851805]
    name: Atom,
  • replacement in "libpijul/src/change.rs" at line 720
    [3.851845][3.851845:851873]()
    change: Atom<Hash>,
    [3.851845]
    [3.851873]
    change: Atom,
  • replacement in "libpijul/src/change.rs" at line 725
    [3.851920][3.851920:851981]()
    change: Atom<Hash>,
    replacement: Atom<Hash>,
    [3.851920]
    [3.851981]
    change: Atom,
    replacement: Atom,
  • replacement in "libpijul/src/change.rs" at line 731
    [3.852035][3.852035:852063]()
    change: Atom<Hash>,
    [3.852035]
    [3.852063]
    change: Atom,
  • replacement in "libpijul/src/change.rs" at line 735
    [3.852119][3.852119:852147]()
    change: Atom<Hash>,
    [3.852119]
    [3.852147]
    change: Atom,
  • replacement in "libpijul/src/change.rs" at line 739
    [3.852199][3.852199:852227]()
    change: Atom<Hash>,
    [3.852199]
    [3.852227]
    change: Atom,
  • edit in "libpijul/src/change.rs" at line 1065
    [3.6366]
    [3.862693]
    pub fn local(&self) -> Option<&Local> {
    match self {
    Hunk::Edit { ref local, .. }
    | Hunk::Replacement { ref local, .. }
    | Hunk::SolveOrderConflict { ref local, .. }
    | Hunk::UnsolveOrderConflict { ref local, .. }
    | Hunk::ResurrectZombies { ref local, .. } => Some(local),
    _ => None,
    }
    }
  • replacement in "libpijul/src/change.rs" at line 1093
    [3.863408][3.863408:863429](),[3.863429][3.6948:7473](),[3.7473][3.863976:863986](),[3.863976][3.863976:863986]()
    match self {
    Hunk::FileMove { .. }
    | Hunk::FileDel { .. }
    | Hunk::FileUndel { .. }
    | Hunk::SolveNameConflict { .. }
    | Hunk::UnsolveNameConflict { .. }
    | Hunk::FileAdd { .. } => None,
    Hunk::Edit { ref local, .. }
    | Hunk::Replacement { ref local, .. }
    | Hunk::SolveOrderConflict { ref local, .. }
    | Hunk::UnsolveOrderConflict { ref local, .. }
    | Hunk::ResurrectZombies { ref local, .. } => Some(local.line),
    }
    [3.863408]
    [3.863986]
    self.local().map(|x| x.line)
  • replacement in "libpijul/src/change.rs" at line 1097
    [3.863995][3.7474:7518](),[3.7518][3.121412:121448](),[3.864041][3.121412:121448]()
    impl<Local> Hunk<Option<ChangeId>, Local> {
    pub fn globalize<T: GraphTxnT>(
    [3.863995]
    [3.121448]
    impl<A, Local> BaseHunk<A, Local> {
    pub fn atom_map<B, E, F: FnMut(A) -> Result<B, E>>(
  • replacement in "libpijul/src/change.rs" at line 1100
    [3.121462][3.121462:121479](),[3.121479][3.7519:7579]()
    txn: &T,
    ) -> Result<Hunk<Option<Hash>, Local>, T::GraphError> {
    [3.121462]
    [3.121541]
    mut f: F,
    ) -> Result<BaseHunk<B, Local>, E> {
  • replacement in "libpijul/src/change.rs" at line 1103
    [3.121565][3.7580:7646](),[3.7646][3.121566:121650](),[3.864210][3.121566:121650]()
    Hunk::FileMove { del, add, path } => Hunk::FileMove {
    del: del.globalize(txn)?,
    add: add.globalize(txn)?,
    [3.121565]
    [3.864292]
    BaseHunk::FileMove { del, add, path } => BaseHunk::FileMove {
    del: f(del)?,
    add: f(add)?,
  • replacement in "libpijul/src/change.rs" at line 1108
    [3.864329][3.7647:7675]()
    Hunk::FileDel {
    [3.864329]
    [3.864359]
    BaseHunk::FileDel {
  • replacement in "libpijul/src/change.rs" at line 1113
    [3.4688][3.7676:7709](),[3.864428][3.7676:7709](),[3.7709][3.121651:121777](),[3.864463][3.121651:121777]()
    } => Hunk::FileDel {
    del: del.globalize(txn)?,
    contents: contents.as_ref().map(|del| del.globalize(txn).unwrap()),
    [3.4688]
    [3.864579]
    } => BaseHunk::FileDel {
    del: f(del)?,
    contents: if let Some(c) = contents {
    Some(f(c)?)
    } else {
    None
    },
  • replacement in "libpijul/src/change.rs" at line 1123
    [3.864616][3.7710:7740]()
    Hunk::FileUndel {
    [3.864616]
    [3.864648]
    BaseHunk::FileUndel {
  • replacement in "libpijul/src/change.rs" at line 1128
    [3.4742][3.7741:7776](),[3.864719][3.7741:7776](),[3.7776][3.121778:121908](),[3.864756][3.121778:121908]()
    } => Hunk::FileUndel {
    undel: undel.globalize(txn)?,
    contents: contents.as_ref().map(|del| del.globalize(txn).unwrap()),
    [3.4742]
    [3.864876]
    } => BaseHunk::FileUndel {
    undel: f(undel)?,
    contents: if let Some(c) = contents {
    Some(f(c)?)
    } else {
    None
    },
  • replacement in "libpijul/src/change.rs" at line 1138
    [3.864913][3.7777:7857](),[3.7857][3.121909:121953](),[3.864997][3.121909:121953]()
    Hunk::SolveNameConflict { name, path } => Hunk::SolveNameConflict {
    name: name.globalize(txn)?,
    [3.864913]
    [3.865040]
    BaseHunk::SolveNameConflict { name, path } => BaseHunk::SolveNameConflict {
    name: f(name)?,
  • replacement in "libpijul/src/change.rs" at line 1142
    [3.865077][3.7858:7942](),[3.7942][3.121954:121998](),[3.865165][3.121954:121998]()
    Hunk::UnsolveNameConflict { name, path } => Hunk::UnsolveNameConflict {
    name: name.globalize(txn)?,
    [3.865077]
    [3.865208]
    BaseHunk::UnsolveNameConflict { name, path } => BaseHunk::UnsolveNameConflict {
    name: f(name)?,
  • replacement in "libpijul/src/change.rs" at line 1146
    [3.865245][3.7943:7971]()
    Hunk::FileAdd {
    [3.865245]
    [3.865275]
    BaseHunk::FileAdd {
  • replacement in "libpijul/src/change.rs" at line 1152
    [3.1176][3.7972:8005](),[3.865376][3.7972:8005](),[3.8005][3.121999:122189](),[3.865411][3.121999:122189]()
    } => Hunk::FileAdd {
    add_name: add_name.globalize(txn)?,
    add_inode: add_inode.globalize(txn)?,
    contents: contents.as_ref().map(|add| add.globalize(txn).unwrap()),
    [3.1176]
    [3.865590]
    } => BaseHunk::FileAdd {
    add_name: f(add_name)?,
    add_inode: f(add_inode)?,
    contents: if let Some(c) = contents {
    Some(f(c)?)
    } else {
    None
    },
  • replacement in "libpijul/src/change.rs" at line 1163
    [3.865627][3.2046:2071]()
    Hunk::Edit {
    [3.865627]
    [3.2071]
    BaseHunk::Edit {
  • replacement in "libpijul/src/change.rs" at line 1167
    [3.2144][3.2144:2174](),[3.2174][3.122190:122238](),[3.8063][3.122190:122238](),[3.865688][3.122190:122238]()
    } => Hunk::Edit {
    change: change.globalize(txn)?,
    [3.2144]
    [3.865735]
    } => BaseHunk::Edit {
    change: f(change)?,
  • replacement in "libpijul/src/change.rs" at line 1172
    [3.865773][3.8064:8096]()
    Hunk::Replacement {
    [3.865773]
    [3.865807]
    BaseHunk::Replacement {
  • replacement in "libpijul/src/change.rs" at line 1177
    [3.2228][3.8097:8134](),[3.865883][3.8097:8134](),[3.8134][3.122239:122345](),[3.865922][3.122239:122345]()
    } => Hunk::Replacement {
    change: change.globalize(txn)?,
    replacement: replacement.globalize(txn)?,
    [3.2228]
    [3.866026]
    } => BaseHunk::Replacement {
    change: f(change)?,
    replacement: f(replacement)?,
  • replacement in "libpijul/src/change.rs" at line 1183
    [3.866064][3.8135:8220](),[3.8220][3.122346:122394](),[3.866153][3.122346:122394]()
    Hunk::SolveOrderConflict { change, local } => Hunk::SolveOrderConflict {
    change: change.globalize(txn)?,
    [3.866064]
    [3.866200]
    BaseHunk::SolveOrderConflict { change, local } => BaseHunk::SolveOrderConflict {
    change: f(change)?,
  • replacement in "libpijul/src/change.rs" at line 1187
    [3.866238][3.8221:8310](),[3.8310][3.122395:122443](),[3.866331][3.122395:122443]()
    Hunk::UnsolveOrderConflict { change, local } => Hunk::UnsolveOrderConflict {
    change: change.globalize(txn)?,
    [3.866238]
    [3.866378]
    BaseHunk::UnsolveOrderConflict { change, local } => BaseHunk::UnsolveOrderConflict {
    change: f(change)?,
  • replacement in "libpijul/src/change.rs" at line 1191
    [3.866416][3.2256:2293]()
    Hunk::ResurrectZombies {
    [3.866416]
    [3.2293]
    BaseHunk::ResurrectZombies {
  • replacement in "libpijul/src/change.rs" at line 1195
    [3.2366][3.2366:2408](),[3.2408][3.122444:122492](),[3.8392][3.122444:122492](),[3.866501][3.122444:122492]()
    } => Hunk::ResurrectZombies {
    change: change.globalize(txn)?,
    [3.2366]
    [3.866548]
    } => BaseHunk::ResurrectZombies {
    change: f(change)?,
  • edit in "libpijul/src/change.rs" at line 1201
    [3.122504]
    [3.866596]
    }
    }
    impl<Local> Hunk<Option<ChangeId>, Local> {
    pub fn globalize<T: GraphTxnT>(
    self,
    txn: &T,
    ) -> Result<Hunk<Option<Hash>, Local>, T::GraphError> {
    self.atom_map(|x| x.globalize(txn))
  • edit in "libpijul/src/change/text_changes.rs" at line 719
    [13.61420]
    [13.61420]
    byte: None,
  • edit in "libpijul/src/change/text_changes.rs" at line 739
    [13.62075]
    [13.62075]
    byte: None,
  • edit in "libpijul/src/change/text_changes.rs" at line 864
    [13.66364]
    [13.66364]
    byte: None,
  • edit in "libpijul/src/change/text_changes.rs" at line 875
    [13.66801]
    [13.66801]
    byte: None,
  • edit in "libpijul/src/change/text_changes.rs" at line 893
    [13.67507]
    [13.67507]
    byte: None,