Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] Any Subversion geniuses out there?



On Fri, Dec 2, 2011 at 10:01 AM, John Abreau <abreauj at gmail.com> wrote:

> I've seen this before with "text" files on Windows. Just changing the
> MIME type wil not work, because the files are encoded in UTF-16
> (note *NOT* UTF-8). 16-bit characters, not 8-bit characters. If you
> change the MIME type to force it to be interpreted as normal text,
> the file will have a null byte between each and every character.
>
> When I had to deal with those issues at a previous job, I used iconv(1)
> in my shell scripts to convert the MS "text" to UTF-8.
>
>    iconv --from-code=UTF-16 --to-code=UTF-8 ms-text-file.txt >
> plain-text-file.txt
>
> I also ran it through "tr -d '\r'" to scrape off the ^M at the end of
> each line before dropping it into the output file, but that's a separate
> issue.
>
>
> On Fri, Dec 2, 2011 at 9:40 AM, Matt Shields <matt at mattshields.org> wrote:
> > On Fri, Dec 2, 2011 at 8:11 AM, Edward Ned Harvey <blu at nedharvey.com>
> wrote:
> >
> >> > From: discuss-bounces+blu=nedharvey.com at blu.org [mailto:discuss-
> >> > bounces+blu=nedharvey.com at blu.org] On Behalf Of Matt Shields
> >> >
> >> >  What I was wondering is it possible in Subversion when a changeset is
> >> > being committed that a hook could be used to change the mime-type.
>  So if
> >> > the file being committed is a *.sql, then it would override whatever
> >> > mime-type the client is saying and apply text/x-sql.
> >>
> >> This question will be best answered by the subversion-users mailing
> list,
> >> http://subversion.apache.org/mailing-lists.html
> >> but let's see what we can say about it here.
> >>
> >> The mime type, I believe, is determined by the svn client, and it's
> >> determined by file contents.  What do you get, if you run linux "file"
> on
> >> the file?  What do you see if you try to open the file in vim or emacs?
> >>
> >> I'm sure you can change the mime-type as a precommit or postcommit hook
> >> (probably best precommit) but I'm almost equally sure that it's not what
> >> you
> >> want to do.  When they detect the contents and select a mime type, the
> >> reason they're doing it is because svn internally employs all sorts of
> diff
> >> and compression algorithms, to optimize both the network traffic and
> disk
> >> storage.  If you go overriding the mime types against its natural
> wishes,
> >> you run the risk of ...  Suboptimizing performance.  Is probably the
> >> diplomatic way of saying effing everything up.
> >>
> >> Another option you might consider, I believe, is that they have a
> mechanism
> >> of some kind to allow you to inject a custom client-side diff utility
> for
> >> certain files or mime types or something like that.  You might
> configure it
> >> so that your client doing the diff might run something like the SQL
> >> equivalent of "dos2unix" to convert a file format and then diff it, or
> >> something like that.  Of course the odds of success doing this are
> >> diminished by trac.  You might just have to use something like
> tortoisesvn
> >> or whatever to perform these diffs.
> >>
> >> In fact, tortoisesvn does some pretty excellent diffing.  What happens
> if
> >> you try diffing with tortoise?
> >>
> >>
> > Yes, I'm aware of that, and I can put something in each client's
> svnconfig
> > to override this behavior for specific filetypes.  I don't want to have
> to
> > do that since everytime we get a new developer it's one more step I have
> to
> > remember to do to their dev machine.
> >
> > The issue is SQL Server Management Studio is encoding it weird and
> > TortoiseSVN is then taking that as it being a binary and not a text file.
> >  See the two outputs of file.  The first has been fixed by me forcing it
> to
> > be proper encoding and the proper mime-type.  The second was created in
> > SSMS and committed.
> >
> > dbo.Proc_xxxx.sql:         Little-endian UTF-16 Unicode c program text,
> > with CRLF, CR line terminators
> > dbo.Proc_yyyy.sql:                 ASCII c program text, with CRLF line
> > terminators
> >
> > Yes, diff's in TortoiseSVN are great, same with Unix command line.  The
> > issue is the Dir of Tech prefer's to use Trac to review all changes, and
> > because it's encoded wrong, that means svn is applying the wrong
> mime-type
> > which causes Trac's diff feature not to work.
> >
> > In this case I don't believe there is any harm forcing svn to use a
> > specific mime-type since they are both text. I'll check out the
> > check-mime-type.pl that Greg mentioned.
> >
> > Matthew Shields
> > Owner
> > BeanTown Host - Web Hosting, Domain Names, Dedicated Servers, Colocation,
> > Managed Services
> > www.beantownhost.com
> > www.sysadminvalley.com
> > www.jeeprally.com
> > Like us on Facebook <http://www.facebook.com/beantownhost>
> > Follow us on Twitter <https://twitter.com/#!/beantownhost>
> > _______________________________________________
> > Discuss mailing list
> > Discuss at blu.org
> > http://lists.blu.org/mailman/listinfo/discuss
>
>
>
> --
> John Abreau / Executive Director, Boston Linux & Unix
> OLD GnuPG KeyID: D5C7B5D9 / Email: abreauj at gmail.com
> OLD GnuPG FP: 72 FB 39 4F 3C 3B D6 5B E0 C8 5A 6E F1 2C BE 99
> 2011 PGP KeyID: 32A492D8 / Email: abreauj at gmail.com
> 2011 PGP FP: 7834 AEC2 EFA3 565C A4B6  9BA4 0ACB AD85 32A4 92D8
>

That sounds like I could do that as a one time, then recommit all the files
that have been processed.  But going forward I would still need a precommit
script to do this

How about having Trac ignore the svn:mime-type when it determines if it can
do a diff or not?  I'll have to warn the dev's and Director of Tech not to
do a diff on any real binary files


Matthew Shields
Owner
BeanTown Host - Web Hosting, Domain Names, Dedicated Servers, Colocation,
Managed Services
www.beantownhost.com
www.sysadminvalley.com
www.jeeprally.com
Like us on Facebook <http://www.facebook.com/beantownhost>
Follow us on Twitter <https://twitter.com/#!/beantownhost>



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org