Gitdiffbinstat -- git diff --shortstat for binary files

You may know  git diff --shortstat  which summarizes the line-changes between branches/commits/tags etc.
When I had a branch were I ran optipng on many images I was annoyed by the fact that  git diff --shortstat  would only summarize changes of text files, but not changes of binary files.
That's why I made gitdiffbinstat.
The script gets diffs between the current  HEAD  and some other branch/commit/tag  and summarizes the file changes (but also line changes) so you can easily see how many additional bytes certain branch would add to HEAD if it was merged, or how much bigger a release got from version "foo.2" to current HEAD etc
The latest version 2.5-1 can also tell you about files which were moved (and not changed), unfortunately this increased the output-clutter. (Ideas how to make the output more structured are appreciated! )
You can install the script via aur https://aur.archlinux.org/packages.php?ID=55519
Feedback is welcome
Regards,
Matthias

Hi john,
You may try the 'cmp' command.
The following tells whether the two files are idential or not:
cmp file1 file2
or
cmp -b file1 file2
The latter will show the first differing byte.
If you want to see all the differing bytes, then (caution: the output can be very long):
cmp -lb file1 file2
see 'man cmp' or 'info diff' for more detail.
PowerMac G4   Mac OS X (10.4.8)  

Similar Messages

  • Text_io equivalent for binary files

    Hi!
    I use forms 6:
    Forms [32 Bits] Versão 6.0.8.11.3 (Produção)
    Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
    I believe that what is happening with me its a bug that maybe was fixed in some new patch for forms 6. But I can´t update now.
    I´m trying to load a file (binary) from client (win) to a blob column at server.
    When I use dbms_lob in forms, the form simple crashes. No error, no nothing. It just closes.
    For clob i managed to make a workarround, i create a package at server and i read the text file with text_io at client side and create the clob in the package at server side.
    Now I need to do the same with binary files. There is a way to read and write binary files in forms (client side) without using dbms_lob?
    Thanks.

    You can't use DBMS_LOB on the client-side. DBMS_LOB is a database package and executes always on the database-server. The only chance i see with forms 6i is to somehow transfer te file to to a fileshare on the database-server (maybe ftp) and then use DBMS_LOB on that transferred file.

  • Blob for binary file, read/write problems

    Hi,
    I am relatively new to this type of development so apologies if this question is a bit basic.
    I am trying to write a binary document (.doc) to a blob and read it back again, constructing the original word file. I have the following code for reading and writing the file:
    private void save_addagreement_Click(object sender, EventArgs e)
    // Save the agreement to the database
    int test_setting = 0;
    // create an OracleConnection object to connect to the
    // database and open the connection
    string constr;
    if (test_setting == 0)
    constr = "User Id=royalty;Password=royalty;data source=xe";
    else
    constr = "User ID=lob_user;Password=lob_password;data source=xe";
    OracleConnection myOracleConnection = new OracleConnection(constr);
    myOracleConnection.Open();
    // create an OracleCommand object to hold a SQL statement
    OracleCommand myOracleCommand = myOracleConnection.CreateCommand();
    myOracleCommand.CommandText = "insert into blob_content(id, blob_column) values 2, empty_blob())";
    OracleDataReader myOracleDataReader = myOracleCommand.ExecuteReader();
    // step 2: read the row
    OracleTransaction myOracleTransaction = myOracleConnection.BeginTransaction();
    myOracleCommand.CommandText =
    "SELECT id, blob_column FROM blob_content WHERE id = 2";
    myOracleDataReader = myOracleCommand.ExecuteReader();
    myOracleDataReader.Read();
    Console.WriteLine("myOracleDataReadre[\"id\"] = " + myOracleDataReader["id"]);
    OracleBlob myOracleBlob = myOracleDataReader.GetOracleBlobForUpdate(1);
    Console.WriteLine("OracleBlob = " + myOracleBlob.Length);
    myOracleBlob.Erase();
    FileStream fs = new FileStream(agreement_filename.Text, FileMode.Open, FileAccess.Read);
    Console.WriteLine("Opened " + agreement_filename.Text + " for reading");
    int numBytesRead;
    byte[] byteArray = new byte[fs.Length];
    numBytesRead = fs.Read(byteArray, 0, (Int32)fs.Length);
    Console.WriteLine(numBytesRead + " read from file");
    myOracleBlob.Write(byteArray, 0, byteArray.Length);
    Console.WriteLine(byteArray.Length + " written to blob object");
    Console.WriteLine("Blob Length = " + myOracleBlob.Length);
    fs.Close();
    myOracleDataReader.Close();
    myOracleConnection.Close();
    This gives the following console output:
    myOracleDataReadre["id"] = 2
    OracleBlob = 0
    Opened D:\sample_files\oly_in.doc for reading
    56832 read from file
    56832 written to blob object
    Blob Length = 56832
    My write to file code is:
    private void save_agreement_to_disk_Click(object sender, EventArgs e)
    string filename;
    SaveFileDialog savedoc = new SaveFileDialog();
    if (savedoc.ShowDialog() == DialogResult.OK)
    filename = savedoc.FileName;
    // create an OracleConnection object to connect to the
    // database and open the connection
    OracleConnection myOracleConnection = new OracleConnection("User ID=royalty;Password=royalty");
    myOracleConnection.Open();
    // create an OracleCommand object to hold a SQL statement
    OracleCommand myOracleCommand = myOracleConnection.CreateCommand();
    myOracleCommand.CommandText =
    "SELECT id, blob_column " +
    "FROM blob_content " +
    "WHERE id = 2";
    OracleDataReader myOracleDataReader = myOracleCommand.ExecuteReader();
    myOracleDataReader.Read();
    Console.WriteLine("myOracleDataReader[id] = " + myOracleDataReader["id"]);
    //Step 2: Get the LOB locator
    OracleBlob myOracleBlob = myOracleDataReader.GetOracleBlobForUpdate(1);
    Console.WriteLine("Blob size = " + myOracleBlob.Length);
    //Step 3: get the BLOB data using the read() method
    byte[] byteArray = new byte[500];
    int numBytesRead;
    int totalBytes = 0;
    FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
    while ((numBytesRead = myOracleBlob.Read(byteArray, 0, 500)) > 0)
    totalBytes += numBytesRead;
    fs.Write(byteArray, 0, byteArray.Length);
    Console.WriteLine("numBytes = " + numBytesRead + " totalBytes = " + totalBytes);
    Console.WriteLine((int)fs.Length + " bytes written to file");
    fs.Close();
    myOracleDataReader.Close();
    myOracleConnection.Close();
    This gives the following console output:
    myOracleDataReader[id] = 2
    Blob size = 0
    0 bytes written to file
    If I manually add the blob file using the following:
    DECLARE
    my_blob BLOB;
    BEGIN
    -- load the BLOB
    my_bfile := BFILENAME('SAMPLE_FILES_DIR', 'binaryContent.doc');
    SELECT blob_column
    INTO my_blob
    FROM blob_content
    WHERE id = 1 FOR UPDATE;
    DBMS_LOB.FILEOPEN(my_bfile, dbms_lob.file_readonly);
    DBMS_LOB.LOADFROMFILE(my_blob, my_bfile, DBMS_LOB.GETLENGTH(my_bfile), 1, 1);
    DBMS_LOB.FILECLOSEALL();
    COMMIT;
    END;
    COMMIT;
    The write to file works perfectly. This tells me that there must be something wrong with my code that is writing the blob to the database. I tried where possible to following the Oracle article using large objects in .NET but that (along with most things on the internet) focus on uploading text files.
    Thanks in advance.
    Chris.

    myOracleCommand.CommandText = "insert into blob_content(id, blob_column) values 2, empty_blob())";
    OracleDataReader myOracleDataReader = myOracleCommand.ExecuteReader();
    This looks wrong, you shouldn't be using ExecuteReader unless you expect to get a result back. Try using ExecuteNonQuery to do the insert.

  • Append Text Header for Binary file

    Hello Experts
    I am using LabView 7.0 with PCI 6040 DAQ. I have created two separate files, one file is Binary that collects binary raw data from 16 channels of the DAQ. The second file contains variable length Header, i.e the information about all 16 channels and physical conditions of the recording. I am trying to merge these two files to form a single file that contains a text header at the top and followed by the binary data. I am unable to figure out that how can I append binary data to a text file.
    I need help from users please.  
    Ciao!!!!
    Nabeel

    Hi Chris, Dev
    I am working on Implementation of EDF file format (European data Format) in Lab View.  This file format is widely becoming a standard to acquire and store the physical data of patients. In short, the specification of the file can b read at  ( http://www.hsr.nl/edf/specs/edf.html ). Most of the companies that develop equipments for EEG (electroencephalogram) are implementing this format to read and write data. In my experiments I am also using the same file format but just to acquire and store. For reading and analysing the data Matlab is widely used instead of Labview. Dev, I have just start introducing myself to the idea of Data loggers.  
    Dear Chris I have labview 7.0, is it possible to reload the file for 7.0? If not can you load it as a picture format?
    Regards
    Nabeel    

  • Downloading a binary file

    Following is a short program that attempts to copy a binary file from a remote site to a local file. I tested the program with a text file and it basically works. The problem is that the read() function does not throw an EOFException. So I have the following questions:
    1. Is there some method that accomplishes what my copyFile(...) method does?
    2. Is there a marker that signals the end of a file? Is this marker the same for text files and for binary files?
    3. Is there a better way to copy a binary file?
    Your help will be much appreciated.
    Miguel
    import java.util.*;
    import java.io.*;
    import java.awt.*;
    import java.net.*;
    public class filecopy {
    public static void main(String[] args) { 
    copyFile("http://localhost/super/input.txt","output.txt");
    static void copyFile(String mapURL,String mapName) {
    BufferedReader bin = null;
    DataOutputStream bout = null;
    try {
    URL url = new URL(mapURL);
    URLConnection connection = url.openConnection();
    bin = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    bout = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(mapName)));
    while(true) {
    bout.write(bin.read());
    } catch (EOFException eofexc) {
    try {
    bin.close();
    bout.flush();
    bout.close();
    } catch (IOException ioexc) {
    System.out.println("copyFile: IOException: " + ioexc);
    } catch (IOException ioexc) {
    System.out.println("copyFile: IOException: " + ioexc);
    }

    I would highly recomend getting the file size of the remote file, and collecting data until you have a file as big as the one you want. I would do this for both binary and text files. Not all textfiles have an EOF marker, and there is no universal "EOF" marker for a binary file.
    ~Kullgen

  • Bug in LV8 : 'Save for previous version' and 'Write to Binary File' VI

    Hello
    I am using LabVIEW 8's revamped 'Write to Binary File' VI with a 'TRUE' boolean constant wired to the optional 'prepend array or string size?' to write non-trivial structures to a binary file. I then read the file with the 'Read from Binary File' VI and everything is fine. I don't wire anything to the 'file (use dialog)' input (don't know if this can help).
    However, after saving my VI for LabVIEW 7.1, I cannot read the binary files created with the LV7 version of the VI anymore. After examining the LV7 converted version of the VI, there is a 'FALSE' boolean constant that is wired to the equivalent of the 'prepend array or string size' input, which breaks the binary format that is expected.
    The attached files are LV8 and 'saved for LV7' versions of a dummy VI that writes an array of 5 integers into a binary file. To test the bug, start LV8, open the LV8 version, run it and create a 'test-lv8.bin' file, then open the LV7 version, run it and create a 'test-lv7.bin' file. Check the content of the two files : the size of the array is indeed missing from the 'test-lv7.bin' file, which can be assimilated as a bug in my opinion.
    I think I found another one too : if in LV8 I wire the 'cancelled' boolean output of the 'Open/Create/Replace file' to the selector of a case structure, the 'converted to LV7' version VI will have an error, saying the Case Structure selector is not wired.
    Could someone please confirm these are indeed bugs ?
    Thanks in advance and have a nice day.
    Eric Batut
    Attachments:
    Test Binary File v7-v8 LV7.vi ‏15 KB
    Test Binary File v7-v8 LV8.vi ‏7 KB

    I'm using LV8.6 and need to read a .bin file created in MATLAB. This file obviously does not contain the 4 byte header that LabVIEW prepends .bin files with. So when I use Read from Binary File, I get no data (I'm trying to read an array of doubles). I've tried making my .bin file both in native and big-endian format and changing the representation (double, int64, float64) but none of this works. I noted that if I create the same array in a .bin file in LabVIEW and wire a FALSE to the "prepend array or string size?", my VI for reading .bin files can't read this file either.
    Any work-arounds here?
    (I'll try attaching my write & read VI's)
    Attachments:
    ReadWriteBinFile.zip ‏19 KB

  • The first binary file write operation for a new file takes progressively longer.

    I have an application in which I am acquiring analog data from multiple
    PXI-6031E DAQ boards and then writing that data to FireWire hard disks
    over an extended time period (14 days).  I am using a PXI-8145RT
    controller, a PXI-8252 FireWire interface board and compatible FireWire
    hard drive enclosures.  When I start acquiring data to an empty
    hard disk, creating files on the fly as well as the actual file I/O
    operations are both very quick.  As the number of files on the
    hard drive increases, it begins to take considerably longer to complete
    the first write to a new binary file.  After the first write,
    subsequent writes of the same data size to that same file are very
    fast.  It is only the first write operation to a new file that
    takes progressively longer.  To clarify, it currently takes 1 to 2
    milliseconds to complete the first binary write of a new file when the
    hard drive is almost empty.  After writing 32, 150 MByte files,
    the first binary write to file 33 takes about 5 seconds!  This
    behavior is repeatable and continues to get worse as the number of
    files increases.  I am using the FAT32 file system, required for
    the Real-Time controller, and 80GB laptop hard drives.   The
    system works flawlessly until asked to create a new file and write the
    first set of binary data to that file.  I am forced to buffer lots
    of data from the DAQ boards while the system hangs at this point. 
    The requirements for this data acquisition system do not allow for a
    single data file so I can not simply write to one large file.  
    Any help or suggestions as to why I am seeing this behavior would be
    greatly appreciated.

    I am experiencing the same problem. Our program periodically monitors data and eventually save it for post-processing. While it's searching for suitable data, it creates one file for every channel (32 in total) and starts streaming data to these files. If it finds data is not suitable, it deletes the files and creates new ones.
    On our lab, we tested the program on windows and then on RT and we did not find any problems.
    Unfortunately when it was time to install the PXI on field (an electromechanic shovel on a copper mine) and test it, we've come to find that saving was taking to long and the program screwed up. Specifically when creating files (I.E. "New File" function). It could take 5 or more seconds to create a single file.
    As you can see, field startup failed and we will have to modify our programs to workaround this problem and return next week to try again, with the additional time and cost involved. Not to talk about the bad image we are giving to our costumer.
    I really like labview, but I am particularly upset beacuse of this problem. LV RT is supposed to run as if it was LV win32, with the obvious and expected differences, but a developer can not expect things like this to happen. I remember a few months ago I had another problem: on RT Time/Date function gives a wrong value as your program runs, when using timed loops. Can you expect something like that when evaluating your development platform? Fortunately, we found the problem before giving the system to our costumer and there was a relatively easy workaround. Unfortunately, now we had to hit the wall to find the problem.
    On this particular problem I also found that it gets worse when there are more files on the directory. Create a new dir every N hours? I really think that's not a solution. I would not expect this answer from NI.
    I would really appreciate someone from NI to give us a technical explanation about why this problem happens and not just "trial and error" "solutions".
    By the way, we are using a PXI RT controller with the solid-state drive option.
    Thank you.
    Daniel R.
    Message Edited by Daniel_Chile on 06-29-2006 03:05 PM

  • When I try to download a software up date for another program in Binary File (eg CCleaner or a Microsoft file) in FireFox they all just come up in the download window as 'Cancelled'? When I go to the destination folder the download file icon is there wit

    When I try to download a software up date for another program in Binary File (eg. C Cleaner or a Microsoft file) in Firefox they all just come up in the download window as 'Canceled'? When I go to the destination folder the download file icon is there with 0 Kb's for size...Then when I click 'RETRY' the download it appears to download fully, but when I go into the destination folder the downloaded file is not there? I need to know if there is something in the Firefox options to resolve this problem or much more!!

    If all .exe files are blocked, antivirus software is most likely configured to block them. See if you can download these with your antivirus and/or security software disabled.

  • What's the best way for reading this binary file?

    I've written a program that acquires data from a DAQmx card and writes it on a binary file (attached file and picture). The data that I'm acquiring comes from 8 channels, at 2.5MS/s for, at least, 5 seconds. What's the best way of reading this binary file, knowing that:
    -I'll need it also on graphics (only after acquiring)
    -I also need to see these values and use them later in Matlab.
    I've tried the "Array to Spreadsheet String", but LabView goes out of memory (even if I don't use all of the 8 channels, but only 1).
    LabView 8.6
    Solved!
    Go to Solution.
    Attachments:
    AcquireWrite02.vi ‏15 KB
    myvi.jpg ‏55 KB

    But my real problem, at least now, is how can I divide the information to get not only one graphic but eight?
    I can read the file, but I get this (with only two channels):
    So what I tried was, using a for loop, saving 250 elements in different arrays and then writing it to the .txt file. But it doesn't come right... I used 250 because that's what I got from the graphic: at each 250 points it plots the other channel.
    Am I missing something here? How should I treat the information coming from the binary file, if not the way I'm doing?
    (attached are the .vi files I'm using to save in the .txt format)
    (EDITED. I just saw that I was dividing my graph's data in 4 just before plotting it... so It isn't 250 but 1000 elements for each channel... Still, the problem has not been solved)
    Message Edited by Danigno on 11-17-2008 08:47 AM
    Attachments:
    mygraph.jpg ‏280 KB
    Read Binary File and Save as txt - 2 channels - with SetFilePosition.vi ‏14 KB
    Read Binary File and Save as txt - with SetFilePosition_b_save2files_with_array.vi ‏14 KB

  • Binary file save - bug in lv8 for MAC ?

    Hi,
    Using LV8 on Mac OSX, I found a bug concerning binary file saving (attached file).
    Write an array of double in a binary file. Read it back.
    If you used little endian,ok. If you used Big-endian, result is wrong (but no error).
    Could a mac user replicate ?
    Boris Matrot
    Attachments:
    bin_file_save_lv8_mac.vi ‏14 KB

    Just as an additional data point, everything works fine under Windows.
    (As a workaround, have you tried flattening the data for writing? I don't have a MAC, so I cannot test.)
    Message Edited by altenbach on 01-19-2006 12:41 PM
    LabVIEW Champion . Do more with less code and in less time .

  • Changing oaj2se.exe binary file for form operations

    Hi,
    When you open the form service in R12.1.3, you encounter a page with the following message.
    In order to access this application, you must install the J2SE Plugin version 1.6.0_07. To install this plugin, click here to download the oaj2se.exe executable. Once the download is complete, double-click the oaj2se.exe file to install the plugin. You will be prompted to restart your browser when the installation is complete.
    If you need the newer version - let's say 1.6.0.10 - than 1.6.0.07. Then, going through click here will give still the old binary file.
    For this kind of cases, it would be good if the binary file just gives the latest one when clicked to download j2se plugin.
    So, here the questions come.
    Q1.
    Is it safe to replace the old binary file with the latest jre file from Oracle site?
    Q2.
    How can this be done? I mean, where is the location and is it ok just to replace the binary file?
    Does anyone have any idea on this?
    Thanks,

    Hi,
    Please see
    Deploying Sun JRE (Native Plug-in) for Windows Clients in Oracle E-Business Suite Release 12 [ID 393931.1]
    This doc looks big, But it is straight forward and very easy to do
    Thanks

  • Binary file support for web application in 10.3?

    There is such paragraph in Release notes for Flash Player 10.3:
    Binary file support
    Add more power to your web application with direct byte access to binary data. Control and access data in new ways, such as adding support for new file and data types or manipulating sound data in real time to create new sound effects.
    Does anyone know what do they mean by this exactly?

    Real programmers do it in binary!! ;-)

  • I looking for program in binary files

    please help me to find aprogam in binary files that program read
    from binary file and write to another binary one by using java prommig
    as soon as possible...........thanks ..

    offtheroad wrote:
    What instrument area should I use for pulling in iTunes files to edit together, Voice, guitar, ...
    drop the files into a blank area of the timeline and GB will create a track for the files. if you want to do it manually, create a New Basic Track

  • Binary files won't open since I upgraded Firefox for my mac.

    Ever since I've updated my Firefox for my mac, I can't open Binary files. Example: When I click on an email attachment a window opens - You have chosen to open
    "File Name"
    which is a: Binary File
    from: http:/where.ever
    Would you like to save this file?
    When I chose "save file" my "downloads" window would pop up but the file would not be there.
    I was able to remedy that problem to the point at which the file would show up in the "downloads" window but when I attempted to open the file I would get:
    ! Couldn't open the file. It may be corrupt or a file format that Preview
    doesn't recognize.
    So far this has happened with all Binary files I have attempted to open since my Firefox update.
    Never had this problem before.
    == This happened ==
    Every time Firefox opened
    == I updated Firefox

    Exactly the same problem. It doesn't happen with Safari. Seeking help before I abandon Firefox!

  • Any info on CRC, checksum, or other file integity VIs for large binary files?

    Working on send rather large binary files (U16 stream to file) via internet. Would like to check for file integity via CRC or comparable checksum. Would appreciate any comments/suggestions

    Hi Brian,
    You said;
    "Would appreciate any comments/suggestions".
    You did not mention what transport mechanism you plan on using.
    As I understand ALL of the standard mechanism use CRC of some form to ensure the validity of the packet BEFORE it is ever passed up the OSI 7-Layer model.
    TCP/IP based protocols will see to it that all of the segments of a transfer are completed and in order.
    UDP on the other hand is a broadcast type protocol and does not ensure any packets are recieved.
    So,
    At the very worst you should be able to handle your "sanity checks" by simply using a sequence value that is included in your out-going message. The reciever should just have to check if the current seq value is equal to the previous +1.
    I co-developed an app that ut
    ilized this technique to transfer status messages from a RT platform to a Windows machine. The status messages in this app where concidered FYI, so the sequence counter served as a way of determining if anything was missed.
    I am insterested in others thoughts on this subject.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

Maybe you are looking for