6 tf - Team Foundation Client
11 'tf' [/server:<server name or ip address>] [/login:<login credentials>]
12 <command> [<command arguments>]
17 'tf' is a source control client for Microsoft Team Foundation Server.
21 */login:username [,password]*::
22 Provide authentication credentials. If you don't specify a
23 password you will be prompted for one. If you have
24 gnome-keyring support enabled, TF will store the login
25 credentials on your default keyring if configured to do so
26 (see "Credentials.Save" configuration option below).
28 */server:<server name or ip address>*::
29 Specify the Team Foundation Server. If you are within a mapped
30 working folder, you don't need to specify the /server option,
31 as this information is stored in the VersionControl.config
37 Pend an add on a file or files to the repository. To commit, you
38 must issue a checkin command.
41 Show local client workspace and working folder cache details.
43 *changeset <changeset id>*::
44 Show changeset details: committer, date, comment, and files changed.
45 The changeset id is just an integer - no "C" prefix is required as in
46 the diff command below.
48 *checkin [ <filenames or path> /recursive /comment:<comment> ]*::
49 Checkin pending changes in workspace. With no arguments, this command
50 will checkin all files in your workspace, not just all files underneath
51 your current working directory. Due to a limitation in Mono.GetOptions,
52 the /comment parameter cannot include spaces. This will be fixed soon!
54 *checkout <filenames>*::
55 Checkout a file for editing. Command alias: edit.
57 *configure [ <key> | <key> <value> ]*::
58 With no arguments, displays current configuration. With 1 argument,
59 deletes the configuration setting <key>. With 2 arguments,
60 sets the value of <key> to <value>. See Configuration section below
61 for more details on valid settings.
63 *delete <filenames> [ /recursive ]*::
64 Pend a delete against a file or files from the repository. To commit, you
65 must issue a checkin command.
67 *diff <filename or path or changeset id> [ /old | /modified ]*::
68 Show pending changes as a diff. With /old, shows changes from current
69 workspace to latest on the server as a diff. With /modified, shows
70 changes to writable workspace files as a diff - another way to preview
71 changes before using the *online* command. With a changeset id, like
72 C12278, the command will show you a diff of the files changed in that
76 List files in specified server path. A way to explore the folders on the server
77 without setting up a workspace and downloading the files.
80 Update local repository copy with latest versions from the server.
81 Think "cvs/svn update". Note: Files are initially set to read-only, until
82 checked out with the *checkout* command.
84 *help [ <cmd> | /list ]*::
85 Show builtin help. Optionally, specify a tf command for which to
86 show detailed help. The /list option is primarily a helper for shell
89 *history <filename | path > [ /format:detailed /recursive /stopafter:X ]*::
90 Display changelog history for specified file. If you are looking for a
91 git-log/svn log type function use this and add /recursive. Use /stopafter
92 to limit the number of entries returned.
94 *label <labelname> <itemspec> [ /recursive ]*::
95 Add a label or tag to an item.
97 *labels [ <labelname> /owner:<ownername> /format:detailed ]*::
98 Displays labels or tags. Can optionally filter by <labelname> and <ownername>.
100 *ls-files <path> [ /deleted | /modified | /old | /unknown ]*::
101 Shows known, deleted, modified, old, or unknown files under the given path.
102 With no options, ls-files shows known files. /old option by default shows
103 only files in your workspace which are out of date, not new files on the
104 server you've not yet fetched. To show those files as well, use "/old /all".
105 This behavior may change in future releases, based on user feedback.
107 *online <path> [ /added | /modified | /deleted | /preview ]*::
108 Finds all writable files and marks them as pending changes on the server.
109 It also finds all unknown files and marks them as pending adds, missing
110 files are marked as pending deletes. A great command to use if you apply
111 a patch to a clean tfs-managed tree and want to pend the changes to the
112 server for checkin. The /added, /modified, /deleted flags can be used
113 to show just additions, just modifications, or just deletions respectively.
114 These flags may be combined. With no flags, all changes are shown.
117 Show server permissions on a file. Command alias: permission.
119 *properties <filenames> [ /recursive ]*::
120 Show detailed properties for each filename including server locks, encoding,
121 last modified date, changeset id, and whether the file has a newer version
124 *rename <oldname> <newname>*::
125 Rename a file or files in the repository.
127 *status [<filenames> /recursive ]*::
128 Show status of all pending changes in local workspace. Optional paths/filenames
129 may be added to narrow the resulting output.
132 Delete all files not under version control. Use /preview to see what
135 *undo <filenames> [ /recursive ]*::
136 Undo pending changes.
138 *unlabel <labelname> <itemspec>*::
139 Remove a label or tag from an item.
141 *workspace [ /new | /delete ]*::
144 *workspaces [ /format:detailed ]*::
145 List workspaces in server repository. Use /format:detailed for additional
148 *workfold [ <server path> <local path> | /unmap <local path> ]*::
149 Manage working folders. With no arguments, print current working folder
150 mappings. With a server path and local path, creates a new working folder
153 *view <filenames | server paths>*::
154 Displays the latest version of the specified file or files.
159 *List all workspaces on the server 10.2.10.2, using a username of "domain\\username" and a password of "password".*::
160 tf workspaces /server:10.2.10.2 /login:domain\\username,password /owner:"+++*+++" /computer:"+++*+++"
162 *Create a workspace with the name "workspaceName" with an owner name of ownerName.*::
163 tf workspace /new "workspaceName;ownerName"
165 *Setup a working folder for the project "ProjectName" in directory ~/src/project.*::
166 tf workfold "$/ProjectName" /home/username/src/project
168 *Fetch/Get all files in folder in project "ProjectName" to local machine.*::
169 tf get /recursive /home/username/src/project
171 *Delete the workspace "workspaceName" created above.*::
172 tf workspace /delete workspaceName
177 You can execute multiple commands in sequence in a single run of TF,
178 by separating the commands with '%'. Here's how you might checkin a
179 patch with a single run of TF:
183 $ patch -p1 < ~/new-feature.diff
184 $ tf online % checkin
190 The TF client stores configuration settings in ~/.tf/TfClient.config.
193 The TF client will display a summary of pending
194 changes and ask for confirmaton below committing changes to the server
195 when set to "true". The default is "false". It's non-trivial to rollback
196 a committed change, so this option is highly recommended.
199 The TF client will always checkout the latest version rather than
200 the workspace version if this setting is set to "true". Note: this option
201 only effects the checkout command, not the "online" command.
204 The TF client will store login credentials if this
205 setting is set to "true". The default is "false".
208 A comma separated list of files to ignore. Currently, only the "online"
209 command honors this setting. The wildcard characters * and ? are supported.
210 Example setting: "*.dll,*.pdb".
213 The TF client will automatically do recursive gets when set
214 to "true". IMHO, this is far more useful than the default behavior.
217 The TF client defaults to brief output of history which does not include
218 file level information. Set this setting to "true" to get file level history.
220 *History.DefaultToCwd*::
221 The TF client will default to the current working directory if not options
222 are given when running the subcommand "history". The default behavior of the
223 standard client is to require a path for all history queries. This option
224 provides an optional and more sensible default.
226 *History.Recursive*::
227 The TF client will automatically do recursive history queries when set
228 to "true". IMHO, this is far more useful than the default behavior.
231 The TF client will automatically do a recursive online command when set
232 to "true". IMHO, this is far more useful than the default behavior for
233 clean trees. Not as helpful for trees littered with build output files.
238 The TF client keeps a cache of workspaces and folder mappings in
239 ~/.tf/Cache/VersionControl.config. Here's a sample file:
242 <VersionControlServer>
244 <ServerInfo uri="http://10.2.1.2:8080/">
245 <WorkspaceInfo name="neo" ownerName="DOMAIN\USER" computer="MYBOX" comment="" LastSavedCheckinTimeStamp="4/26/2007 11:55:50 PM">
247 <MappedPath path="/home/jreed/Source/xyz-project" />
248 <MappedPath path="/home/jreed/Source/abc-project" />
253 </VersionControlServer>
259 TFS doesn't have built in support for tracking file attributes, for
260 example, whether the file is executable or not. The TF client included
261 in this package makes use of libmagic to determine whether a file
262 should be marked executable or not.
267 http://groups.google.com/group/tf4mono
268 http://msdn2.microsoft.com/en-us/library/bb130146(VS.80).aspx
269 http://msdn2.microsoft.com/en-us/teamsystem/default.aspx
270 http://msdn2.microsoft.com/en-us/cc31bk2e(VS.80).aspx
275 Written by Joel Reed <joelwreed@gmail.com>
280 Documentation by Joel Reed <joelwreed@gmail.com>