− let result = working_copy.record_prefixes(
− txn.clone(),
− channel.clone(),
− changes,
− &mut state,
− repo_path.clone(),
− prefixes,
− num_cpus,
− 0,
− );
− use libpijul::working_copy::filesystem::*;
− match result {
− Ok(_) => {}
− Err(Error::Add(AddError::Fs(FsError::NotFound(_)))) => {}
− Err(Error::Add(AddError::Fs(FsError::AlreadyInRepo(_)))) => {}
− Err(e) => {
− error!("While adding {:?}: {}", prefixes, e);
+ for p in prefixes.iter() {
+ use libpijul::working_copy::filesystem::*;
+ match working_copy.record_prefix(
+ txn.clone(),
+ channel.clone(),
+ changes,
+ &mut state,
+ repo_path.clone(),
+ p,
+ num_cpus,
+ 0,
+ ) {
+ Ok(_) => {}
+ Err(Error::Add(AddError::Fs(FsError::NotFound(_)))) => {}
+ Err(Error::Add(AddError::Fs(FsError::AlreadyInRepo(_)))) => {}
+ Err(Error::Add(AddError::Io(e))) if e.kind() == std::io::ErrorKind::NotFound => {}
+ Err(e) => {
+ error!("While adding {:?}: {}", prefixes, e);
+ }
+ }
+ }
+ if prefixes.is_empty() {
+ use libpijul::working_copy::filesystem::*;
+ match working_copy.record_prefix(
+ txn.clone(),
+ channel.clone(),
+ changes,
+ &mut state,
+ repo_path.clone(),
+ Path::new(""),
+ num_cpus,
+ 0,
+ ) {
+ Ok(_) => {}
+ Err(Error::Add(AddError::Fs(FsError::NotFound(_)))) => {}
+ Err(Error::Add(AddError::Fs(FsError::AlreadyInRepo(_)))) => {}
+ Err(Error::Add(AddError::Io(e))) if e.kind() == std::io::ErrorKind::NotFound => {}
+ Err(e) => {
+ error!("While adding {:?}: {}", prefixes, e);
+ }