= Trac Diff Module = ''Note 1: this is an new feature, quickly maturing in the source:branches/cboos-dev/anydiff-branch development branch.'' ''Note 2: this is a prototype for the feature documentation. It will eventually be merged with the TracChangeset documentation page''. == The Different Ways of to Prepare a Diff == === Examining Differences Between Revisions === A very frequent need is to look at changes made on a file or on a directory spanning multiple revisions. In the TracLog view, one can select the '''old''' and the '''new''' revision of the path being examined, and then select the '''Diff''' operation. === Examining Arbitrary Differences === One of the main feature of source configuration management systems is the possibility to work simultaneously on alternate ''Lines of Developments'', or ''branches''. The evolution of branches are often made in parallel, making it sometimes difficult to understand the exact set of differences between alternative versions. This is where Trac comes to the rescue: the TracBrowser allows any path in the repository, at any given revision to be selected as the ''Base for Diff'', i.e. the '''old''' file (or directory) which can be compared to any other existing '''new''' path/revision pair. The resulting set of differences consist in the changes that would be necessary to make on the ''Base'' in order to make it look like the target of the comparison. For convenience, it is possible to invert the roles for the '''old''' and the '''new''' path/revision pairs. === Checking the Last Changes === The last possibility for looking at changes is to have a quick look on the ''Previous Diff'' while browsing a file or a directory. This shows the relevant TracChangeset information, but restricted to the path being browsed, and with a link to the next ''Previous Diff'', making it convenient to look at the history of the changes for a given path. ''TO BE DONE'' == Looking at the Differences == See TracChangeset for now, as the display is very similar. Except: * the Changeset information is shown only for the last mode (''Checking the Last Changes'') * the path and revision information for the individual files being examined are those corresponding to their creation (''created path/created rev''). This helps to discover which side is the ''real'' old file while examining parallel lines of development. In relation to the latest point, I'm thinking about providing a checkbox for each file entry in order to generate a ''diff'' containing only the selected changes (''cherry-picking support''). == Feedback == ''Please feel free to add your observations''