pub struct P4Cli { /* private fields */ }Implementations§
Source§impl P4Cli
impl P4Cli
Sourcepub fn new(bin: impl Into<PathBuf>, global_opts: GlobalOpts) -> Self
pub fn new(bin: impl Into<PathBuf>, global_opts: GlobalOpts) -> Self
Create a new Perforce command-line client.
bin is the path to the Perforce command-line executable.
Sourcepub fn global_opts(self, global_opts: GlobalOpts) -> Self
pub fn global_opts(self, global_opts: GlobalOpts) -> Self
Set the global options.
Sourcepub fn get_global_opts(&self) -> &GlobalOpts
pub fn get_global_opts(&self) -> &GlobalOpts
Get the global options.
Sourcepub fn set_global_opts(&mut self, global_opts: GlobalOpts)
pub fn set_global_opts(&mut self, global_opts: GlobalOpts)
Set the global options.
Sourcepub fn admin(&self) -> AdminEntry
pub fn admin(&self) -> AdminEntry
Perform administrative operations on the server.
Sourcepub fn aliases(&self) -> Aliases
pub fn aliases(&self) -> Aliases
Display command aliases that are currently defined in a .p4aliases file.
Sourcepub fn bgtask(&self) -> BackGroundTask
pub fn bgtask(&self) -> BackGroundTask
Run a background command or trigger on the server.
The returned builder starts with no task target; call
BackGroundTask::execute (-e) or BackGroundTask::trigger
(-t) to select the required target before spawning.
Sourcepub fn cachepurge(&self) -> CachePurge
pub fn cachepurge(&self) -> CachePurge
Reclaim disk space on a replicated server.
The returned builder starts with no purge goal and has no effect;
call CachePurge::purge_all (-a), CachePurge::free_space
(-f), CachePurge::revision_count (-m), or
CachePurge::size (-s) to select the required goal before
spawning.
Sourcepub fn changelist(&self) -> Change
pub fn changelist(&self) -> Change
Create or edit a changelist specification.
This is an alias for Self::change, corresponding to the p4 changelist command.
Sourcepub fn changelists(&self) -> Changes
pub fn changelists(&self) -> Changes
List submitted and pending changelists.
This is an alias for Self::changes, corresponding to the p4 changelists command.
Sourcepub fn diff(&self) -> Diff
pub fn diff(&self) -> Diff
Diff workspace content against depot content, or diff stream specs.
Examples found in repository?
37fn main() -> std::io::Result<()> {
38 let p4 = P4Cli::default();
39
40 // Workspace mode: force a diff against head, use the unified format with
41 // whitespace-insensitive comparison, and limit output to the first 10
42 // files. `force(true)` transitions the command into `WorkspaceMode`, and
43 // `limit(10)` further transitions it into `WorkspaceRegularMode` (where
44 // `-soptions` is unavailable).
45 let mut diff = p4
46 .diff()
47 .force(true)
48 .diff_options(DiffOptionsBuilder::unified(None).ignore_all_whitespace())
49 .limit(10);
50
51 let files = [OsStr::new("//depot/project/src/...")];
52 let output = diff.output_with((&files,))?;
53 println!("{}", String::from_utf8_lossy(&output.stdout));
54
55 // Display mode: instead of full diffs, list only the unopened files that
56 // differ from the depot. `display_options` transitions `WorkspaceMode`
57 // into `WorkspaceDisplayMode`, where `-m max` is unavailable.
58 let mut list_changed = p4
59 .diff()
60 .force(true)
61 .display_options(DisplayOptions::UnopenedChanged);
62
63 let output = list_changed.output(files)?;
64 println!("{}", String::from_utf8_lossy(&output.stdout));
65
66 // Stream-spec mode: diff a privately edited stream spec against the head
67 // version of another stream. `stream_spec_mode` transitions the command
68 // into `StreamSpecMode`; the stream spec is passed to `spawn_with`.
69 #[cfg(not(feature = "lt2019_1"))]
70 {
71 let mut stream_diff = p4.diff().stream_spec_mode();
72 let mut child = stream_diff.spawn_with(("//streams/main@head",))?;
73 child.wait()?;
74 }
75
76 Ok(())
77}Sourcepub fn diff2(&self) -> Diff2
pub fn diff2(&self) -> Diff2
Compare the content at two depot paths, or compare two stream specs.
Sourcepub fn print(&self) -> Print
pub fn print(&self) -> Print
Print the contents of depot file revisions.
Examples found in repository?
15fn main() -> std::io::Result<()> {
16 let p4 = P4Cli::default();
17
18 // Chain builders: print all revisions of the first two matching files to
19 // a local output file, without the depot header line.
20 let mut print = p4
21 .print()
22 .all_revisions(true)
23 .quiet_mode(true)
24 .limit(2)
25 .redirect_output("print-output.txt");
26
27 // Run the command to completion and capture its output.
28 let file = Path::new("//depot/project/README.md");
29 let output = print.output_with((&[file.as_os_str()],))?;
30 println!("{}", String::from_utf8_lossy(&output.stdout));
31
32 // Or stream the contents directly to the terminal with `spawn_with`.
33 let mut child = p4
34 .print()
35 .spawn_with((&[OsStr::new("//depot/project/README.md")],))?;
36 child.wait()?;
37
38 Ok(())
39}