I've always assumed that the output from diff
(typically "unified", whether or not it's colorized) is universally understood among most if not all text-based language programmers. Whether it's used due to version control or just comparing two individual files, it seemed that it is rather prolific.
- GitHub offers both unified and split (side-by-side), defaulting to last-used (first-time is unified, I believe)
- GitLab offers both unified and split, but defaults to unified (no ref found in docs)
- Mercurial (
hg diff
) uses it (https://www.mercurial-scm.org/guide) - Subversion (
svn diff
) uses it (http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn.c.diff) - Git uses it (defaults to unified, other formats available) (https://git-scm.com/docs/git-diff)
- (to name just a few)
In a recent conversation with a project-partner (who is operating solely in TSQL), they complained that the unified-diff text I sent them in an email (containing literally two changed lines) was unusable/unrecognizable to them. I'm not upset that they aren't familiar with my standard: I'm honestly surprised that "they don't grok diff
output".
Questions:
They use Visual Studio and TFS. Some research suggests that TFS does support
/format:unified
, but I cannot determine if it is default. What is the default, and does TFS have some form ofpatch.exe
to easily import a diff-like change?They've directed that I send every change as a whole file. Since we both make changes to the code, they then need to manually find my changes and merge them (or not). I understand that this pain is now theirs, but if they choose to not merge because they don't see a change, I am directly affected (and troubleshooting is difficult). Is there a better way I can send them changes so that they easily know where all changes exist yet have the convenience of getting the whole file?
If not
diff
(orsdiff
,vdiff
, ordiff3
), what other "industry-standards" are there? (perhaps limited/focused on MS/TFS)
I'm fairly comfortable with git
, GitHub, and GitLab, so my prejudice is recently git
-centric, though I have history with RCS, CVS, and Subversion. While I do not assume that git
and therefore diff
is the end-all/be-all, my point here is not about opinions on VC systems. I'm trying to disspell my mis-assumptions and communicate better.
NB: I have no access to their TFS server, and they will not try to work with my GitLab.