git diff too slow for a file

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

 



Hello,

If I run a attached script for bunzipped attached files, I get:
(To reduce size, I removed many lines and bzipped.)

    $ ./mk.sh
    time diff -u x3 x4 >/dev/null 2>&1

    real	0m0.011s
    user	0m0.000s
    sys	0m0.010s

    time git diff >/dev/null 2>&1

    real	0m0.193s
    user	0m0.190s
    sys	0m0.000s

    $ git version
    git version 1.7.0.2.273.gc2413

    $ diff --version
    diff (GNU diffutils) 2.8.1
    ...

Well, though the files are ascii file, they includes a random
hexa-decimal datas, so that I don't interest the diff result at
all.  But the real problem is 'rebasing took so long if the file
was changed'.  Because the git tree includes several such a file,
if they changed, rebase took some miniutes for every branch.
Such a branch includes a few lines of changes for a C source file,
though.  Now I'm waiting an hour to finish rebasing all the
branches and yet a rebasing script is running... :-(

Please help!
Thanks,
namsh

The original file has more than 180000 lines and the result is:
    $ ./mk.sh
    time diff -u x3 x4 >/dev/null 2>&1

    real	0m0.759s
    user	0m0.740s
    sys	0m0.010s

    time git diff >/dev/null 2>&1

    real	0m44.460s
    user	0m44.390s
    sys	0m0.030s

Attachment: x3.bz2
Description: Binary data

Attachment: x4.bz2
Description: Binary data

#!/bin/bash

run_command()
{
    echo "$@"
    eval "$@"
}

run_command 'time diff -u x3 x4 >/dev/null 2>&1'

{
    rm -rf u
    mkdir u
    cd u
    cp ../x3 x
    git init
    git add .
    git ci -m x
    cp ../x4 x
} >/dev/null 2>&1

echo ''
run_command 'time git diff >/dev/null 2>&1'

exit 0

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]