don't barf when diffing binary files
[tfs.git] / ChangeLog
blob24c6e66034b58dd84882b16bef2b751cd9187dbf
1 2007-02-05  Joel Reed  <joelwreed@comcast.com>
3         * v0.6.1 release notes
5         # NEW: add /path option to "tf labels" command for filtering by path
6         # NEW: add Workfold.CreateLocal option to automatically create
7         mapped local folders.
8         # NEW: better cygwin support, eg. pipe-able ls-files output
9         # NEW: show the difference between two versions for a specified path
10         with tf diff <to version spec> <from version spec> <path>
11         # NEW: don't barf when diffing binary files
12         # BUGFIX: tf.sh shouldn't assume mono is always in /usr/bin/
13         # BUGFIX: make Microsoft.TeamFoundation.Client.Authenticator work with
14         mono versions post 1.2.6
15         # BUGFIX: off by one bug in tf diff /modified output
16         # BUGFIX: catch invalid changeset ids instead of throwing
17         # COMPAT:
18         http://blogs.msdn.com/buckh/archive/2006/03/15/552288.aspx
19         http://blogs.msdn.com/buckh/archive/2005/10/26/485458.aspx
20         http://blogs.msdn.com/buckh/archive/2005/10/25/484854.aspx
21         http://blogs.msdn.com/jmanning/archive/2006/08/08/692281.aspx
22         
23 2007-10-07  Joel Reed  <joelwreed@comcast.com>
25         * v0.6.0 release notes
27         # CRUISECONTROL: add support for date range queries to the history
28         command, e.g. -version:"D2006-10-01T01:01:01Z~D2006-12-13T20:00:00Z"
29         # CRUISECONTROL: add -noprompt option
30         # CRUISECONTROL: add support for username@domain -login syntax
31         # TFSBOT: add new IRC commit notification daemon. 
32         # NEW: add alpha-quality MonoDevelop addin, with debian package
33         # NEW: implement "tf shelve <name> <path>" to create new shelvesets
34         # NEW: implement "tf shelve /delete <name>" for deleting shelvesets
35         # NEW: implement "tf merges <src> <dest>" for listing merge points
36         # NEW: implement "tf diff /ignorespace" option
37         # NEW: implement "tf rollback <changeset>" for undoing a changeset.
38         NOTE: only useful if no one else has changed the file since then.
39         # NEW: add Get.ChangesetMtimes setting: By enabling this option, 
40         the TF will set the modification time of any file subsequently fetched
41         to the date of the last changeset in which the file was modified. 
42         Warning: this mode of operation can significantly slow down "tf get".
43         NOTE: Is this the best we can do? Does the server have any better datetime info?
44         # NEW: add Get.DefaultToCwd setting: By enabling this option, the TF 
45         client will look for updates starting with the current working folder 
46         instead of pulling updates from all registered working folders.
47         # NEW: add Workspace.Default setting: If the TF client cannot determine the 
48         active workspace, first from the "/workspace:" option, and second the 
49         workspace cache, then it will use the Workspace.Default setting if non-null.
50         # BUGFIX: tf history with stopAfter > 256 shouldn't emit
51         duplicate entries (thanks to dion.olsthoorn for the report & fix)
52         # BUGFIX: tf online <path> shouldn't croak if <path> is an add awaiting 
53         its first checkin
54         # BUGFIX: tf undo <paths> shouldn't undo all local changes
55         # BUGFIX: when parsing changeset and shelveset datetimes don't 
56         drop the time portion
57         # BUGFIX: insert trailing tabs after filenames (a/b) in diffs to
58         help diffutils grok filenames with spaces
59         # BUGFIX: make sure tf ls-files <paths> is not passed a filename
60         # BUGFIX: set proper checkin time (by passing 0, not DateTime.Now - doh!)
61         # BUGFIX: fix tf ls-files /others breakage on windows for subdirectories
62         # BUGFIX: update local workspace cache when "tf workspaces" command called.
63         # BUGFIX: fix issue #8 "tf config expects ~/.tf/ to already exist"
64         # BUGFIX: teach tf that diffing binary files should print short 
65         "Binary files $1 and $2 differ" message
66         # BUGFIX: teach status command how to deal with locked files
67         # BUGFIX: teach tf branches command about server paths
68         # BUGFIX: don't clobber workspace info cache when there
69         are >1 TFS server
70         # BUGFIX: update build for monodevelop 0.18.1 changes
71         # BUGFIX: show renames correctly in changeset command
72         # API: Microsoft.TeamFoundation.Common: Artifact, ArtifactId, ILinking
73         LinkFilter, LinkingUtilities, ServiceInterfaces
74         # API: Microsoft.TeamFoundation.VersionControl.Client: ShelvingOptions,
75         ChangesetMerge
76         
77 2007-09-07  Joel Reed  <joelwreed@comcast.com>
79         * v0.5.2 release notes
80         # NEW: add VS2005 project files and solution for building opentf 
81         on Windows
82         # NEW: add spec file for building RPMs on OpenSuse
83         # NEW: add "lock" command
84         # NEW: add "show stats" command to show server statistics
85         # NEW: add "show tools" command to show registered tools
86         # NEW: add "show build" command to show build configuration
87         # NEW: add "show ident" command to show server account information
88         # NEW: rename "tf cache" to "tf show cache"
89         # NEW: implement "tf changeset /latest" and test case
90         # NEW: implement "tf history /user:FOO" for filtering history queries by user
91         # NEW: implement "tf history /version:<vspec>" - but not ranges!
92         # NEW: add "tf history /format:byowner" and test case
93         # NEW: add "tf version" command to print program version number
94         # NEW: add "Server.Default" setting 
95         # NEW: teach File.Excludes to support directory specifications as well as
96         file glob patterns
97         # NEW: teach tf shelveset the "name;owner" syntax for specifying a shelveset
98         
99         # API: add ICredentialsProvider, ArtifactType, ChangeType, Database, 
100         IGroupSecurityService, IRegistration, Identity, IdentityType, 
101         QueryMembership, OutboundLinkType, RegistrationEntry, SearchFactor 
102         and ServiceInterface classes
103         
104         # API: start work on Microsoft.TeamFoundation.WorkItemTracking.Client assembly
105         # BUGFIX: rework exit codes throughout for more consistency
106         # BUGFIX: tf shelveset /owner:<owner> should filter results by owner
107         # BUGFIX: add column headers to history /format:brief output
108         # BUGFIX: tf get /force shouldn't set preview mode!
109         # BUGFIX: properly label renames in tf status output
110         # BUGFIX: make sure all files in a directory are read-write before
111         attempting to delete a directory containing these files
112         # BUGFIX: handle QueryHistory requests with maxCount > 256
113         # API: implement VersionControlServer.GetLatestChangesetId
115 2007-08-02  Joel Reed  <joelwreed@comcast.com>
117         * v0.5.1 release notes
119         # NEW: add "explore" command for visually browsing a repository, sortable 
120         changeview columns, control-c to copy a changelist entry
121         # NEW: add gtk login dialog for missing auth credentials
122         # NEW: tf undo with no args will undo all local changes, previously the command
123         required at least one filename or path
124         # NEW: report on UndonePendingChange events (which can happen if file upload
125         fails on checkin for example)
126         # NEW: all commands now support reading arguments from stdin
127         # NEW: command chaining now supports output piping using %%. 
128         Implemented for ls-files and diff /q commands only!
129         For example, you can say tf ls-files /others %% add to add all
130         unknown files to the repository. 
131         # NEW: support wildcards in checkout paths
132         # NEW: teach tf workspaces command to filter by workspace name if requested
133         # NEW: add syntax guidance to tf help <cmd> invocations
134         # NEW: 8 more test cases for tf client program covering add, renaming, 
135         and deleting of directories, plus renaming files
136         # BUGFIX: tf rename <olddir> <newdir> should work now
137         # BUGFIX: teach diff /modified to check file hashes before reporting a modified file
138         # BUGFIX: when told to delete a directory, delete files within them too
139         # BUGFIX: implement CheckAuthentication call - this makes adding large numbers
140         of files more reliable as it prevents NTML authentication timeout related failures
141         # BUGFIX: on windows, must do case insensitive path comparisons 
142         when looking for cached workspace info
143         # BUGFIX: tf online <list-of-files> didn't pickup deletes to pend
144         # BUGFIX: GetLocalWorkspaceInfo(string path) should trim workspaceinfo directory
145         separators before looking for a match
146         # BUGFIX: TryGetServerItemForLocalItem and TryGetLocalItemForServerItem
147         should find longest match
148         # BUGFIX: teach tf workfold /unmap to accept relative paths
149         # BUGFIX: always sort items in an ItemSet (sorts tf dir output for example)
151 2007-07-31  Joel Reed  <joelwreed@comcast.com>
153         * v0.5.0.1 release notes (brown paper bag release)
155         # BUGFIX: Improved error reporting broke Command::GetLocalWorkspaceCache
156         function. Darn!
157         
158 2007-07-03  Joel Reed  <joelwreed@comcast.com>
160         * v0.5.0 release notes
162         # NEW: add "tf shelvesets" command (brief output only)
163         # NEW: add support for writable working folders
164         # NEW: implement tf help <cmd> with display of valid options for 
165         each command.
166         # NEW: add "tf branches" command (limited testing)
167         # NEW: add tf online <list of files>
168         # NEW: add tf diff /brief option
169         # NEW: support for tf add /recursive <path>
170         # NEW: 20 new test cases for tf client program
171         # NEW: add "tf help /list" helper for shell completion
172         # NEW: add History.StopAfter setting option
173         # NEW: --disable-magic option for windows/cygwin users
174         # NEW: add progress indicator to GetCommand when setting permissions
175         # NEW: add configure option "--with-mslibs=<dir>" to build just the 
176         TF client using the standard MS Team Foundation Assemblies
177         # NEW: teach view command to accept multiple item specs
178         # BUGFIX: don't try to upload new directories on checkin, only files
179         # BUGFIX: Command.VerifiedFullPaths should accept directories too
180         # BUGFIX: shell wrapper tf should quote $@ so /C:"This is my comment" 
181         will work
182         # BUGFIX: uninstall man page and pkg-config file too
183         # BUGFIX: fix /format:detailed output for added files in history cmd
184         # BUGFIX: tf delete <folder> should actually delete the folder
185         # BUGFIX: honor excludeFiles setting in tf ls-files /writable
186         
187 2007-06-18  Joel Reed  <joelwreed@gmail.com>
189         * v0.4.7 release notes
191         # Implement label and unlabel commands
192         # Add "cache" command which shows workspace cache settings
193         # Add /added, /modified, /deleted flags to Online command to
194         show just additions, just modifications, or just deletions 
195         respectively. These flags may be combined. With no flags, all
196         changes are incorporated.
197         # Add tf diff /modified option to show locally modified files as a
198         unified diff. Can be used to review changes before using the online
199         command.
200         # Add File.Excludes config option. Use in "online" command.
201         # Add Online.Recursive setting. Make default non-recursive to match
202         standard MS client.
203         # Add tf ls-files /writable option (mainly for windows users)
204         # BUGFIX: Fixed multiple issues related to running opentf on windows.
205         these include deleting read-only files and deleting files still open,
206         which succeed on *nix platforms, but not on windows.
207         # BUGFIX: Online command on windows. Replace server item path separator 
208         with platform path separator.
209         # BUGFIX: Replace windows path separators in diff headers with nix path 
210         separator so /usr/bin/patch is happy
211         # BUGFIX: Show deleted files in tf status as state "Deleted" not "544"
212         # BUGFIX: Compare file hashes when looking for modifications in tf online 
213         command. Previously just looked for files marked writable.
214         
215 2007-06-08  Joel Reed  <joelwreed@gmail.com>
217         * v0.4.6 release notes:
219         # Add Get.Recursive and History.DefaultToCwd config options 
220         for those looking to override the less helpful defaults of the
221         standard client
222         # Add Checkout.Latest option to ensure checkout of latest version 
223         of file rather than workspace version
224         # Change /usr/bin/cli to /usr/bin/mono in tf.sh
225         # BUGFIX: several diff fixes, including off by one error for files
226         not ending in "\n", new file diff format fixes, and B file context
227         calculation fixes
228         # BUGFIX: send local version updates to server after pending deletes
229         # BUGFIX: trailing slash on path confused online command 
230         # BUGFIX: Online, TreeClean, and ls-files command should pull item
231         list based on WorkspaceVersion not LatestVersion.
232         # BUGFIX: dont print blank lines for directories and new files for 
233         ls-files /old subcommand.
234         # BUGFIX: when upload new/changed files, send correct file length
235         # BUGFIX: add support for local paths to dir subcommand, and output
236         listing in a more unix-y format (which is, imho, far more useful)
237         # HELP: Warn that invalid options can be mistaken for paths.
238         # HELP: Add more CodePlex usage examples to README
239         
240 2007-04-27  Joel Reed  <joelwreed@gmail.com>
241         
242         * v0.4.4 release notes:
243         
244         NOTE: in this release VersionControl.config is now stored in ~/.tf/Cache/,
245         instead of ~/.tf/ - this change was made for consistency with the 
246         MS versions of the TFS assemblies. If you've used the TF tool previously,
247         just move VersionControl.config from ~/.tf/ to ~/.tf/Cache/
248         
249         # add basic version of TF Power Tool 1.1 "online" command to tf.exe,
250           includes /preview mode.
251         # add basic version of TF Power Tool 1.2 "treeclean" command to tf.exe,
252           includes /preview mode.
253         # add changeset command 
254         # add diff command with support for diff against server latest,
255           diff of pending changes, diff view of any changeset.
256         # add support for response file processing and multiple commands 
257           on a single command line, please see documentation for usage    
258         # add /format:detailed option to history command
259         # add basic "help" command
260         # add config command with options "Checkin.Validate", "Credentials.Save",
261           and "History.Recursive"
262         
263         # read server setings from cache file, don't need /server 
264           quite as much now
265         # load/store credentials from gnome-keyring if available, prompt for
266           password when not supplied.
267         
268         # undoing a delete restores the file now
269         # numerous API additions including: WorkspaceVersionSpec, IDiffItem, 
270           DiffItemVersionedFile, DiffOutputType, DiffOptionFlags, DiffOptions, 
271           Conflict*, ExceptionEvent* types
272         # add DisplayString property for all VersionSpec classes and test cases
273         # better man page
274         # better error messages
276         # BUGFIX: when a file is checked in mark it should be marked read-only
277         # BUGFIX: do case insensitive string comparisons in ls-files and
278         online commands on windows, and use Path.DirectorySeparatorChar
279         # BUGFIX: GetLocalWorkspaceInfo should find longest matching path,
280         not first matching path
281         # BUGFIX: tf get should use CWD only to find workspace
282         # BUGFIX: properly handle checkin of files marked read-only
283         # BUGFIX: on windows find correct TFS VersionControl.config file
284         
285 2007-04-22  Joel Reed  <joelwreed@gmail.com>
287         * v0.4.2 release: add support for querying ExtendedItems. Implement
288         tf.exe property command which uses ExtendedItems. Add GettingEventHandler,
289         PendingChangeEventHandler, ProcessingChangeEventHandler, 
290         and OperationStatus.
292         tf.exe now compiles/runs on MS CLR. Many bug fixes were made to APIs,
293         and client utility while testing on Windows.
295         tf.exe supports two new commands: "ls-files" and "properties".
296         The "status" command output was cleaned up. 
298         Added debian packages via "make dist"
299         
300         Started MonoDevelop plugin based on Subversion plugin. Work in progress.
301         Lots of code cleanups and bug fixes. 
303         Improved handling of ~/.tf/VersionControl.config cache.
305 2007-03-28 joel reed  <joelwreed@gmail.com>
307         * v0.4 release: support for add, delete, rename, edit, and 
308         history, and checkin commands. added file permissions handling
309         using libmagic. show changeset id from server. doc updates.
310         multiple API additions and bug fixes.
311         
312 2007-03-10 joel reed  <joelwreed@gmail.com>
314         * v0.3 release: much better support for tracking a repository,
315         including new files, deleted files, and renames. A preliminary
316         man page has been added, and utility commands like add, delete, 
317         checkout, and rename now modify the state of the server. The 
318         checkin command has a mysterious bug which prevents these 
319         modifications from being added back to the repository, 
320         but that should be cleaned up soon.
322 2006-12-29 joel reed  <joelwreed@gmail.com>
324         * v0.1 release: dir, labels, workspaces, view,
325         and permissions commands have initial implementations
326         
327 2006-12-28 joel reed  <joelwreed@gmail.com>
329         * initial setup of separate TFS tree