Pipe commands

The UVCS command line can read arguments from standard input (stdin) one by one if you use the - option.

For example, you can add three files at the same time:

>cm add -
a.txt
b.txt
c.txt

The selected items are about to be added. Please wait ...
Item c:\Users\pablo\wkspaces\mcga\a.txt was correctly added
Item c:\Users\pablo\wkspaces\mcga\b.txt was correctly added
Item c:\Users\pablo\wkspaces\mcga\c.txt was correctly added

This allows you to pipe output from other commands into cm. For example, you can combine commands to create automations such as to add all files under a specific directory tree:

find /path/to/dir | cm add -

Commands that accept piped paths

The following commands accept piped paths:

  • add
  • applylocalchanges
  • checkin
  • checkout
  • getstatus
  • partialcheckin
  • remove
  • shelveset create
  • undocheckout
  • undochange
  • uncounchanged
  • Wktreenodestatus

Pipe examples

Pipe from the Windows dir command

The following example pipes from the Windows dir command to remove files that match a specific pattern from a workspace:

>dir /S /B *.txt | cm rm -
Item c:\Users\pablo\wkspaces\mcga\a.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\b.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\c.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\z.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\lockwkB\file.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\src_dir\dest_dir\a.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\src_dir\dest_dir\b.txt has been removed.
Item c:\Users\pablo\wkspaces\mcga\src_dir\dest_dir\c.txt has been removed.

Checkout files recursively into piped directory arguments

Directory of c:/mcga/pipe

11/05/2020  19:48    <DIR>            .
11/05/2020  19:48    <DIR>            ..
11/05/2020  17:57    <DIR>            dir
11/05/2020  19:46    <DIR>            dir2
11/05/2020  19:47             12      dirlist
1 File(s)             12 bytes
4 Dir(s)  23,714,631,680 bytes free

c:/mcga/pipe>type dirlist
dir
dir2

c:/mcga/pipe>type dirlist | cm partial co -r -
The selected items are about to be checked out. Please wait ...
Item c:/mcga/pipe/dir was correctly checked out
Item c:/mcga/pipe/dir/file was correctly checked out
Item c:/mcga/pipe/dir2 was correctly checked out
Item c:/mcga/pipe/dir2/file2 was correctly checked out