Archive

Archive for the ‘tip’ Category

TFS command line (tf.exe)

March 27th, 2009 13 comments

Now and then in my life as a lead developer/architect, I have to cope with TFS the ‘hard’ way: the user interface is not always as complete as one would want it to be. One of the greatest tools Microsoft has delivered us is tf.exe, a command line tool to do almost everything impossible with the user interface. However, tf.exe comes with one big draw-back. It does not offer a complete help. Just minutes ago I discovered the documentation I need at one Microsoft guy’s (Noah Coad’s) blog (http://blogs.msdn.com/noahc/archive/2007/01/22/real-tfs-command-line-help.aspx).
 
Just to be sure the help will never disappear, I printed the entire help file below, as well as did I include the help documents as text files.
 
I hope this helps you too.
 
tfhelp.txt (120 characters)
tfhelp.txt (80 characters)
 

COMMANDS

Add        tf add itemspec [lock:none|checkin|checkout] [/type:filetype]

              [/noprompt] [/recursive]

Branch     tf branch olditem newitem [/version:versionspec] [/noget] [/lock]

              [/noprompt] [/recursive]

Branches   tf branches [/s:servername] itemspec

Changeset  tf changeset [/comment:comment|@commentfile] /s:servername

              [/notes:("NoteFieldName"="NoteFieldValue"|@notefile)] [/noprompt]

              ([/latest]|changesetnumber)

Checkin    tf checkin [/author:authorname] [/comment:("comment"|@commentfile)]

              [/noprompt]

              [/notes:("Note Name"="note text"|@notefile)]

              [/override:reason|@reason] [/recursive] filespec …]

Checkout   tf checkout|edit [/lock:(none|checkin|checkout)] [/recursive]

              [/type:encoding] itemspec

Configure  tf configure pathtoproject /server:servername

Delete     tf delete [/lock:(none|checkin|checkout)] [/recursive] itemspec

Difference tf difference itemspec [/version:versionspec] [/type:filetype]

              [/format:(visual|unix|ss)] [/ignorespace]

              [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

           tf difference itemspec itemspec2 [/type:filetype]

              [/format:(visual|unix|ss)] [/ignorespace] [/ignoreeol]

              [/ignorecase] [/recursive] [/options:"options"]

           tf difference [/shelveset:[shelvesetowner;]shelvesetname]

              shelveset_itemspec [/server:serverURL]

              [/type:filetype] [/format:(visual|unix|ss)] [/ignorespace]

              [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

           tf difference /configure

Dir        tf dir [/s:servername] itemspec [/version:versionspec] [/recursive]

              [/folders] [/deleted]

Get        tf get itemspec [/version:versionspec] [/all] [/overwrite] [/force]

              [/preview] [/recursive] [/noprompt]

Help       tf help commandname

History    tf history [/s:servername] itemspec [/version:versionspec]

              [/stopafter:number] [/recursive]

              [/user:username] [/format:(brief|detailed)] [/slotmode]

Label      tf label [/s:servername]  labelname@scope [/owner:ownername]

              itemspec [/version:versionspec]

              [/comment:("comment"|@commentfile)] [/child:(replace|merge)]

              [/recursive]

           tf label [/s:servername] [/delete] labelname@scope

              [/owner:ownername] itemspec [/version:versionspec]

              [/recursive]

Labels     tf labels [/owner:ownername] [/format:(brief|detailed)]

              [/s:servername] [labelname]

Lock       tf lock itemspec /lock:(none|checkout|checkin)

              [/workspace:workspacename] [/server:serverURL] [/recursive]

              [/noprompt]

Merge      tf merge  [/recursive] [/force] [/candidate] [/discard]

              [/version:versionspec]

              [/lock:none|checkin|checkout] [/preview] [/baseless] [/nosummary]

              source destination

Merges     tf merges [/s:servername] destination [/recursive]

Permission tf permission [/allow:(* |perm1[,perm2,…]]

              [/deny:(*|perm1[,perm2,...])]

              [/remove:(* |perm1[,perm2,...])]

              [/inherit:yes|no] [/user:username1[,username2,…]] [/recursive]

              [/group:groupname1[,groupname2,...]]

              [/server:servername] itemspec

Properties tf properties [/recursive] itemspec

Rename     tf rename [/lock:(none|checkout|checkin)] olditem newitem

Resolve    tf resolve itemspec [auto:(AcceptMerge|AcceptTheirs|AcceptYours)]

              [/preview]

              [(/overridetype:overridetype | /converttotype:converttype)]

              [/recursive]

Shelve     tf shelve [/move] [/replace] [/comment:(@commentfile|"comment")]

              [/recursive] shelvesetname[;owner] filespec

           tf shelve /delete [/server:serverURL] shelvesetname[;owner]

Shelvesets tf shelvesets [/owner:ownername] [/format:(brief|detailed)]

              [/server:serverURL] shelvesetname

Status     tf status itemspec [/s:servername]

              ([/workspace:workspacename[;workspaceowner]] |

              [/shelveset:shelvesetname[;shelvesetowner]])

              [/format:(brief|detailed)] [/recursive] [/user:(*|username)]

Undelete   tf undelete [/noget] [/lock:(none|checkin|checkout)]

              [/newname:name] [/recursive] itemspec[;deletionID]

Undo       tf undo [/workspace:workspacename   [;workspaceowner]]

              [/s:servername] [/recursive] itemspec

Unlabel    tf unlabel [/s:servername] [/recursive] labelname itemspec

Unshelve   tf unshelve [/move] [shelvesetname[;username]] itemspec

View       tf view [/s:servername] [/console] [/noprompt] itemspec

              [/version:versionspec]

WorkFold   tf workfold localfolder

           tf workfold [/workspace: workspacename]

           tf workfold [/s:servername] [/workspace: workspacename]

              repositoryfolder

           tf workfold [/map] [/s:servername] [/workspace: workspacename]

              repositoryfolder|localfolder

           tf workfold /unmap [/s:servername] [/workspace: workspacename]

              [/recursive] (repositoryfolder|localfolder)

           tf workfold /cloak (repositoryfolder|localfolder)

              [/workspace: workspacename] [/s:servername]

           tf workfold /decloak (repositoryfolder|localfolder)

              [/workspace:workspacename] [/s:servername]

Workspace  tf workspace /new [/noprompt]

              [/template:workspacename[;workspaceowner]]

              [/computer:computername] [/comment:("comment"|@commentfile)]

              [/s:servername]

           tf workspace /delete [/s:servername]

              workspacename[;workspaceowner]

           tf workspace [/s:servername] [/comment:comment]

              [/newname:workspacename] workspacename[;workspaceowner]

Workspaces tf workspaces [/owner:ownername] [/computer:computername]

              [/s:servername] [/format:(brief|detailed)]

              [/updateUserName:oldusername]

              [/updateComputerName:oldcomputername] workspacename

 

ITEMSPECS

  Can contain wildcards *, ? and #

  Can contain relative path parts . and ..

  Can reference file system or UNC paths mapped to a workspace or server

  paths (which start with $/). You can usually specify more than one

  file separated by spaces for an itemspec (useful for edit, add, delete

  commands)

 

VERSIONSPECS

  Date/Time         Dmm/dd/yyyy

  Changeset number  Cnnnnnn

  Label             Llabelname

  Latest version    T

  Workspace         Wworkspacename;workspaceowner

 

ALIASES

  /changeset  /G     /noprompt   /I

  /comment    /C     /owner      /O

  /computer   /M     /recursive  /R

  /delete     /D     /server     /S

  /force      /P     /slotmode   /X

  /format     /F     /template   /T

  /help       /?,/H  /user       /U

  /lock       /K     /version    /V

  /login      /Y     /workplace  /W

  /newname    /N    

Windows Explorer from Visual Studio

January 9th, 2009 2 comments

Windows Explorer is one of my favorites, especially when coding (in Visual Studio). I often navigate to the file, folder, or project I’m currently working on. Clicking “Windows Explorer” in the Tools menu would be helpful if we could manage to get it there… and ‘yes we can!’.

How?
Go to Tools -> External Tools… -> Add.

In the screen you are presented with, enter:

Title: Windows Explorer
Command: explorer.exe
Arguments: /select,”$(ItemPath)”
Leave Initial directoy blank

Click OK. When you click Tools -> Windows Explorer, the explorer will open with the selection on the current file you are editing in Visual Studio.