On Sat, Jun 7, 2014 at 8:37 PM, Nico Williams <n...@cryptonector.com> wrote:
> The same is true for git, and Mercurial, and... It doesn't mean it > can't be done, just that the VCS has to know how to canonicalize the > file's contents, and that is awful. > > But sometimes someone has no choice. > > Depends on how you define "no choice". I can't speak to git, et al, not turns out one of my coworkers was a student of the creator of RCS, Walter Tichy, and did work on RCS at that time. (Disclaimer: I am NOT advocating building the auto conversion into Fossil, only relaying a story of how one port of RCS acquired the auto conversion. (I really don't think it should be in Fossil or other VCS.)) When he graduated, his first job was at a company that was, at the time, using terminal connected to a VAX running BSD Unix. Then company started getting PCs, which ran MS-DOS back then. At first, they continued to develop on Unix, only pulling down source files when they needed to compile on MS-DOS. Of course, this required runing the files through unix2dos, but this was part of the script that pulled the files from the Unix system. Then another graduate was hired and he brought with him a very early MS-DOS client for Unix file servers. Very soon, management asked if there was a way to run RCS on MS-DOS. My (now) coworker volunteered to port RCS to MS-DOS. Because they were also versioning WordStar and other types of non-text files, his port of RCS did not use MS-DOS's "text mode" to read/write files, so unix2dos and dos2unix were still required. At first, that continued to be hidden in the makefiles, but then management decided the team should start doing their development on MS-DOS and only push files to the Unix system for compiling. At first, my friend just reworked the makefiles to convert and commit any changed files as part of the build process, thus leaving the source files in CRLF format on the PCs. And created and update script that would automatically update a developer's working spacing from RCS. But soon, people started using RCS directly, like they had on Unix. This created a big mess. Management's response was to move the conversion to the Unix side, leaving the sources in RCS in CRLF format. This worked until older versions was needed. Although the makefiles still had the conversion in them, editing the files became an issue and people was constantly forgetting to use unix2dos. Then management decided the conversion had to be done in RCS. At first, my friend created a .bat file around RCS for the developers, but this had problems, so he finally had to add the conversion to RCS. Actually, it was just the logic to decide when to convert. He doesn't if it was his port to MS-DOS actually made it into the master RCS repo, but whichever one did, it's likely it did arise from a situation like this one, where it was the expedient thing to do. While I suspect Linus and company may not have included the auto conversion in git, later maintainers likely decided it was expedient to do so, whether from their own experience or just bowing to a plentitude of requests from the user community. (Since SVN was intended to replace CVS and CVS evolved out of RCS, I am guessing that SVN "inherited" auto conversion from RCS.)
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users