When an explicit patch is given in pijul pull, we need to complete its dependencies in addition to doing a recursive apply (which also does apply transitive dependencies), in order to get the "touched files" right: some touched files might come from transitive dependencies.
NGRJOJE7CA7655Z7VVH74W2OUVAKBC7ZGZSI5AYZS2WZP4LN3IVQC IPU65ECUBBYBCAFUAOFZVL25IVBWEMHBZ6Q5XXLYTD5FZT6HNQOAC UOAHH3CCJYVBRUW6BD5JHC5R4TPX7GNU52BMZWQD5K5NQWWFV4HAC 3E2KY6Y4SQ2UO6PLA4K3MQKHIRHSQCBAJIPJT7NQ6BIETMAQX5QAC 3OW3YNZXF6DR2EI5XS7PDHUUZMARDU2JUJFJKIEWXQNSMCIBVAOQC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC M5FK3ABTKBDG6HHW32G7UKRJEJQKD2U7BPXNZ3HVHBKULWVV6CTQC MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC BBKV6VMN4EVBCBSAQMTL2TARBBSQEZGRCXMTKYUIDOJ3HZISUP7AC 44BN7FWSIXKG75IJUTCXLJE7VANNQFPRHQXTPLQHFU7AKGLSPQRAC BE7GUCI2N6TX3P2HRMFSH7XLJKILDPOKOXKA7HWOABBFNKCKMZLAC 7HOBLRD43W2R5OVOYZVDO5LYPBZS7OSLDS7FH4NVNMBL3AZGMLSQC EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC IVLLXQ5ZWZDKHO4TNQG3TPXN34H6Y2WXPAGSO4PWCYNSKUZWOEJQC 3KRGVQFUWFHPOGZOXVTJYNCM4XBRVYITAEOVPKBSAZ5GZIUO5KVQC DO2Y5TY5JQISUHCVNPI2FXO7WWZVJQ3LGPWF4DNADMGZRIO6PT2QC if !self.all && self.changes.is_empty() {let mut o = make_changelist(&repo.changes, &to_download, "pull")?;to_download = loop {let d = parse_changelist(&edit::edit_bytes(&o[..])?, &to_download);let comp = complete_deps(&repo.changes, &to_download, &d)?;if comp.len() == d.len() {break comp;}o = make_changelist(&repo.changes, &comp, "pull")?};
if self.changes.is_empty() {if !self.all {let mut o = make_changelist(&repo.changes, &to_download, "pull")?;to_download = loop {let d = parse_changelist(&edit::edit_bytes(&o[..])?, &to_download);let comp = complete_deps(&repo.changes, Some(&to_download), &d)?;if comp.len() == d.len() {break comp;}o = make_changelist(&repo.changes, &comp, "pull")?};}} else {to_download = complete_deps(&repo.changes, None, &to_download)?;
let mut result = Vec::with_capacity(original.len());let mut result_h = HashSet::with_capacity(original.len());
let mut result = Vec::with_capacity(original.unwrap_or(now).len());let mut result_h = HashSet::with_capacity(original.unwrap_or(now).len());
if original.get(&CS::Change(d)).is_some() && is_missing {
debug!("complete_deps {:?} {:?}", d, is_missing);let is_missing = if let Some(ref original) = original_ {// If this is a list we submitted to the user for editingoriginal.get(&CS::Change(d)).is_some() && is_missing} else {// Else, we were given an explicit list of patches to pull/pushis_missing};if is_missing {