<commit_before>bup: It backs things up
=======================

bup is a program that backs things up.  It's short for "backup." Can you
believe that nobody else has named an open source program "bup" after all
this time?  Me neither.

Despite its unassuming name, bup is pretty cool.  To give you an idea of
just how cool it is, I wrote you this poem:

                             Bup is teh awesome
                          What rhymes with awesome?
                            I guess maybe possum
                           But that's irrelevant.
			
Hmm.  Did that help?  Maybe prose is more useful after all.


Reasons bup is awesome
----------------------

bup has a few advantages over other backup software:

 - It uses a rolling checksum algorithm (similar to rsync) to split large
   files into chunks.  The most useful result of this is you can backup huge
   virtual machine (VM) disk images, databases, and XML files incrementally,
   even though they're typically all in one huge file, and not use tons of
   disk space for multiple versions.
   
 - It uses the packfile format from git (the open source version control
   system), so you can access the stored data even if you don't like bup's
   user interface.
   
 - Unlike git, it writes packfiles *directly* (instead of having a separate
   garbage collection / repacking stage) so it's fast even with gratuitously
   huge amounts of data.  bup's improved index formats also allow you to
   track far more filenames than git (millions) and keep track of far more
   objects (hundreds or thousands of gigabytes).
   
 - Data is "automagically" shared between incremental backups without having
   to know which backup is based on which other one - even if the backups
   are made from two different computers that don't even know about each
   other.  You just tell bup to back stuff up, and it saves only the minimum
   amount of data needed.
   
 - You can back up directly to a remote bup server, without needing tons of
   temporary disk space on the computer being backed up.  And if your backup
   is interrupted halfway through, the next run will pick up where you left
   off.  And it's easy to set up a bup server: just install bup on any
   machine where you have ssh access.
   
 - Bup can use "par2" redundancy to recover corrupted backups even if your
   disk has undetected bad sectors.
   
 - Even when a backup is incremental, you don't have to worry about
   restoring the full backup, then each of the incrementals in turn; an
   incremental backup *acts* as if it's a full backup, it just takes less
   disk space.
   
 - You can mount your bup repository as a FUSE filesystem and access the
   content that way, and even export it over Samba.
   
 - It's written in python (with some C parts to make it faster) so it's easy
   for you to extend and maintain.


Reasons you might want to avoid bup
-----------------------------------

 - This is a very early version. Therefore it will most probably not work
   for you, but we don't know why.  It is also missing some
   probably-critical features.
   
 - It requires python >= 2.5, a C compiler, and an installed git version >=
   1.5.3.1.
 
 - It currently only works on Linux, MacOS X >= 10.4,
   NetBSD, Solaris, or Windows (with Cygwin).  Patches to support
   other platforms are welcome.
   
   
Getting started
===============


From source
-----------

 - Check out the bup source code using git:
 
        git clone git://github.com/bup/bup

 - Install the needed python libraries (including the development
   libraries).

   On Debian/Ubuntu this is usually sufficient (run as root):

            apt-get install python2.6-dev python-fuse
            apt-get install python-pyxattr python-pylibacl
            apt-get install linux-libc-dev

   Substitute python2.5-dev if you have an older system.  Alternately,
   on newer Debian/Ubuntu versions, you can try this:
    
            apt-get build-dep bup

   On CentOS (for CentOS 6, at least), this should be sufficient (run
   as root):

            yum groupinstall "Development Tools"
            yum install python python-dev<commit_msg>README.md: change python-dev to python-devel for CentOS.<commit_after>bup: It backs things up
=======================

bup is a program that backs things up.  It's short for "backup." Can you
believe that nobody else has named an open source program "bup" after all
this time?  Me neither.

Despite its unassuming name, bup is pretty cool.  To give you an idea of
just how cool it is, I wrote you this poem:

                             Bup is teh awesome
                          What rhymes with awesome?
                            I guess maybe possum
                           But that's irrelevant.
			
Hmm.  Did that help?  Maybe prose is more useful after all.


Reasons bup is awesome
----------------------

bup has a few advantages over other backup software:

 - It uses a rolling checksum algorithm (similar to rsync) to split large
   files into chunks.  The most useful result of this is you can backup huge
   virtual machine (VM) disk images, databases, and XML files incrementally,
   even though they're typically all in one huge file, and not use tons of
   disk space for multiple versions.
   
 - It uses the packfile format from git (the open source version control
   system), so you can access the stored data even if you don't like bup's
   user interface.
   
 - Unlike git, it writes packfiles *directly* (instead of having a separate
   garbage collection / repacking stage) so it's fast even with gratuitously
   huge amounts of data.  bup's improved index formats also allow you to
   track far more filenames than git (millions) and keep track of far more
   objects (hundreds or thousands of gigabytes).
   
 - Data is "automagically" shared between incremental backups without having
   to know which backup is based on which other one - even if the backups
   are made from two different computers that don't even know about each
   other.  You just tell bup to back stuff up, and it saves only the minimum
   amount of data needed.
   
 - You can back up directly to a remote bup server, without needing tons of
   temporary disk space on the computer being backed up.  And if your backup
   is interrupted halfway through, the next run will pick up where you left
   off.  And it's easy to set up a bup server: just install bup on any
   machine where you have ssh access.
   
 - Bup can use "par2" redundancy to recover corrupted backups even if your
   disk has undetected bad sectors.
   
 - Even when a backup is incremental, you don't have to worry about
   restoring the full backup, then each of the incrementals in turn; an
   incremental backup *acts* as if it's a full backup, it just takes less
   disk space.
   
 - You can mount your bup repository as a FUSE filesystem and access the
   content that way, and even export it over Samba.
   
 - It's written in python (with some C parts to make it faster) so it's easy
   for you to extend and maintain.


Reasons you might want to avoid bup
-----------------------------------

 - This is a very early version. Therefore it will most probably not work
   for you, but we don't know why.  It is also missing some
   probably-critical features.
   
 - It requires python >= 2.5, a C compiler, and an installed git version >=
   1.5.3.1.
 
 - It currently only works on Linux, MacOS X >= 10.4,
   NetBSD, Solaris, or Windows (with Cygwin).  Patches to support
   other platforms are welcome.
   
   
Getting started
===============


From source
-----------

 - Check out the bup source code using git:
 
        git clone git://github.com/bup/bup

 - Install the needed python libraries (including the development
   libraries).

   On Debian/Ubuntu this is usually sufficient (run as root):

            apt-get install python2.6-dev python-fuse
            apt-get install python-pyxattr python-pylibacl
            apt-get install linux-libc-dev

   Substitute python2.5-dev if you have an older system.  Alternately,
   on newer Debian/Ubuntu versions, you can try this:
    
            apt-get build-dep bup

   On CentOS (for CentOS 6, at least), this should be sufficient (run
   as root):

            yum groupinstall "Development Tools"
            yum install python python-devel
{'fraction_non_alphanumeric': 0.06751409041851542, 'fraction_numerical': 0.003597553663508814, 'mean_word_length': 2.562580093976933, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '842049', 'n_tokens_mistral': 2256, 'n_tokens_neox': 2113, 'n_words': 1211}