document tf help
[tfs.git] / docs / tf.txt
blob320eea935ffc53c4f6cf505e4a58568371e71ad1
1 tf(1)
2 =====
4 NAME
5 ----
6 tf - Team Foundation Client
9 SYNOPSIS
10 --------
11 'tf' [/server:<server name or ip address>] [/login:<login credentials>]
12                 <command> [<command arguments>]
14 DESCRIPTION
15 -----------
17 'tf' is a source control client for Microsoft Team Foundation Server.
19 OPTIONS
20 -------
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
32   cache file.
34 COMMANDS
35 --------
36 *add <filenames>*::
37         Pend an add on a file or files to the repository. To commit, you 
38   must issue a checkin command.
40 *cache*:: 
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
73   changeset.
75 *dir <server path>*::
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.
79 *get [ <path> ]*::
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 
87   completion code.
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.
116 *perm <filename>*::
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
122   on the server.
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.
131 *treeclean*::
132   Delete all files not under version control. Use /preview to see what 
133         would be deleted.
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 ]*::
142   Manage workspaces.
144 *workspaces [ /format:detailed ]*::
145         List workspaces in server repository. Use /format:detailed for additional
146   information.
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
151   mapping.
153 *view <filenames | server paths>*::
154         Displays the latest version of the specified file or files.
156 EXAMPLES
157 --------
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
175 MULTIPLE COMMANDS
176 -----------------
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:
182 ------------
183 $  patch -p1 < ~/new-feature.diff
184 $  tf online % checkin
185 ------------
188 CONFIGURATION
189 -------------
190 The TF client stores configuration settings in ~/.tf/TfClient.config.
192 *Checkin.Validate*::
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.
198 *Checkout.Latest*::
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.
203 *Credentials.Save*:: 
204         The TF client will store login credentials if this
205   setting is set to "true". The default is "false".
207 *File.Excludes*::
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".
212 *Get.Recursive*::
213         The TF client will automatically do recursive gets when set
214         to "true". IMHO, this is far more useful than the default       behavior.
216 *History.DefaultToCwd*::
217         The TF client will default to the current working directory if not options
218         are given when running the subcommand "history". The default behavior of the
219         standard client is to require a path for all history queries. This option
220   provides an optional and more sensible default.
222 *History.Recursive*::
223         The TF client will automatically do recursive history queries when set
224         to "true". IMHO, this is far more useful than the default       behavior.
226 *Online.Recursive*::
227         The TF client will automatically do a recursive online command when set
228         to "true". IMHO, this is far more useful than the default       behavior for
229         clean trees. Not as helpful for trees littered with build output files.
232 WORKSPACE CACHE
233 ---------------
234 The TF client keeps a cache of workspaces and folder mappings in 
235 ~/.tf/Cache/VersionControl.config. Here's a sample file:
237 ------------
238 <VersionControlServer>
239   <Servers>
240     <ServerInfo uri="http://10.2.1.2:8080/">
241       <WorkspaceInfo name="neo" ownerName="DOMAIN\USER" computer="MYBOX" comment="" LastSavedCheckinTimeStamp="4/26/2007 11:55:50 PM">
242         <MappedPaths>
243           <MappedPath path="/home/jreed/Source/xyz-project" />
244           <MappedPath path="/home/jreed/Source/abc-project" />
245         </MappedPaths>
246       </WorkspaceInfo>
247     </ServerInfo>
248   </Servers>
249 </VersionControlServer>
250 ------------
253 IMPLEMENTATION NOTES
254 --------------------
255 TFS doesn't have built in support for tracking file attributes, for
256 example, whether the file is executable or not. The TF client included 
257 in this package makes use of libmagic to determine whether a file 
258 should be marked executable or not.
261 MORE INFORMATION
262 ----------------
263 http://groups.google.com/group/tf4mono
264 http://msdn2.microsoft.com/en-us/library/bb130146(VS.80).aspx
265 http://msdn2.microsoft.com/en-us/teamsystem/default.aspx
266 http://msdn2.microsoft.com/en-us/cc31bk2e(VS.80).aspx
269 AUTHOR
270 ------
271 Written by Joel Reed <joelwreed@gmail.com>
274 DOCUMENTATION
275 --------------
276 Documentation by Joel Reed <joelwreed@gmail.com>