/// <nodoc /> public bool TryCopyFile( FileArtifact source, AbsolutePath destination, CopyFile.Options options, string[] tags, string description, out FileArtifact fileArtifact) { Contract.Requires(source.IsValid); Contract.Requires(destination.IsValid); fileArtifact = FileArtifact.CreateSourceFile(destination).CreateNextWrittenVersion(); var pip = new CopyFile( source, fileArtifact, ToStringIds(tags), CreatePipProvenance(description), options); if (PipGraph != null) { return(PipGraph.AddCopyFile(pip, GetValuePipId())); } return(true); }