Import of pkgsrc-2013Q2

This commit is contained in:
2013-09-26 17:14:40 +02:00
commit 785076ae39
74991 changed files with 4380255 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
# $NetBSD: Makefile,v 1.2 2006/08/04 22:46:27 rillig Exp $
PROG= same
LDADD= -lz
.include <bsd.prog.mk>

View File

@@ -0,0 +1,98 @@
.\" $NetBSD: same.1,v 1.2 2006/08/04 22:46:27 rillig Exp $
.Dd July 14, 2004
.Dt SAME 1
.Sh NAME
.Nm same
.Nd link identical files to save disk space
.Sh SYNOPSIS
.Nm
.Fl HVcdhnstuvz
.Sh DESCRIPTION
.Nm
takes a list of files (e.g. the output of find . -type f) on stdin.
Each of the files is compared against each of the others.
Whenever two files are found that match exactly, the two files are
linked (soft or hard) together.
.Ss Goal
The goal of this program is to conserve disk space when you have
several different trees of large projects on your disk.
By creating hardlinks or softlinks between the files that are the same,
you can save lots of disk space.
For example, two different versions of the Linux kernel only differ in a
small number of files.
By running this program you only need to store the contents of those
files once.
This is especially useful if you have different versions of complete
trees lying around.
.Ss Implementation
The filesize of every file is used as an indication of wether two
files can be the same. Whenever the filesizes match, the hashes of
these two files are compared. Whenever these match, the file
contents are compared. For every matching pair one of the two
files is replaced by a hard link to the other file.
With the -s option a softlink is used.
.Pp
To allow you to do this incrementally, the "rm" is done on the file
with the least links. This allows you to "merge" a new tree with
several trees that have already been processed. The new tree has
link count 1, while the old tree has a higher link count for those
files that are likely candidates for linkage.
.Pp
The current implementation keeps the "first" incantation of a file,
and replaces further occurrances of the same file. This is
significant when using softlinks.
.Ss Options
.Bl -tag -width xxxxxx
.It Fl H Ar n , Fl -hashstart Ar n
Start at hash value
.Ar n
instead of 0.
.It Fl V , Fl -version
Print the version of the program and exit.
.It Fl c Ar file , Fl -cache Ar file
Keep a cache between runs in file
.Ar file .
.It Fl d , Fl -debug
Output some debug messages.
.It Fl h , Fl -help
Output this page and exit successfully.
.It Fl n , Fl -dryrun
Only simulate.
.It Fl s , Fl -softlinks
Create soft links instead of hard links.
.It Fl u , Fl -user
Don't relink files owned by another user.
.It Fl v , Fl -verbose
Output verbose messages.
.It Fl z , Fl -nullfiles
Link empty files, too.
By default, only non-empty files are linked.
.El
.Sh EXIT STATUS
Zero on success, non-zero on failure.
.Sh EXAMPLES
.Bd -literal
find . -type f -print | same
.Ed
.Sh SEE ALSO
.Xr find 1
.Sh AUTHORS
.An "Roger E. Wolff" Aq R.E.Wolff@BitWizard.nl ,
.An "Geert Uytterhoeven" Aq geert@linux-m68k.org ,
.An "Roland Illig" Aq roland.illig@gmx.de .
.Sh CAVEATS
.Bl -bullet
.It
If your editor does not move the original aside before writing a
new copy, you will change the file in ALL incarnations when
editing a file.
Patch works just fine: it moves the original aside before creating a new
copy.
I'm confident that I could learn Emacs to do it this way too.
I'm too lazy to figure it out, so if you happen to know an easy way how
to do this, please Email me at
.Aq R.E.Wolff@BitWizard.nl .
.It
There is a 1024 (BUFSIZE) character limit to pathnames when using
symlinks.
.El

View File

@@ -0,0 +1,99 @@
SAME(1) NetBSD General Commands Manual SAME(1)
NNAAMMEE
ssaammee -- link identical files to save disk space
SSYYNNOOPPSSIISS
ssaammee [--HHVVccddhhnnssttuuvvzz]
DDEESSCCRRIIPPTTIIOONN
ssaammee takes a list of files (e.g. the output of find . -type f) on stdin.
Each of the files is compared against each of the others. Whenever two
files are found that match exactly, the two files are linked (soft or
hard) together.
GGooaall
The goal of this program is to conserve disk space when you have several
different trees of large projects on your disk. By creating hardlinks or
softlinks between the files that are the same, you can save lots of disk
space. For example, two different versions of the Linux kernel only dif-
fer in a small number of files. By running this program you only need to
store the contents of those files once. This is especially useful if you
have different versions of complete trees lying around.
IImmpplleemmeennttaattiioonn
The filesize of every file is used as an indication of wether two files
can be the same. Whenever the filesizes match, the hashes of these two
files are compared. Whenever these match, the file contents are compared.
For every matching pair one of the two files is replaced by a hard link
to the other file. With the -s option a softlink is used.
To allow you to do this incrementally, the "rm" is done on the file with
the least links. This allows you to "merge" a new tree with several trees
that have already been processed. The new tree has link count 1, while
the old tree has a higher link count for those files that are likely can-
didates for linkage.
The current implementation keeps the "first" incantation of a file, and
replaces further occurrances of the same file. This is significant when
using softlinks.
OOppttiioonnss
--HH _n, ----hhaasshhssttaarrtt _n
Start at hash value _n instead of 0.
--VV, ----vveerrssiioonn
Print the version of the program and exit.
--cc _f_i_l_e, ----ccaacchhee _f_i_l_e
Keep a cache between runs in file _f_i_l_e.
--dd, ----ddeebbuugg
Output some debug messages.
--hh, ----hheellpp
Output this page and exit successfully.
--nn, ----ddrryyrruunn
Only simulate.
--ss, ----ssooffttlliinnkkss
Create soft links instead of hard links.
--uu, ----uusseerr
Don't relink files owned by another user.
--vv, ----vveerrbboossee
Output verbose messages.
--zz, ----nnuullllffiilleess
Link empty files, too. By default, only non-empty files are
linked.
EEXXIITT SSTTAATTUUSS
Zero on success, non-zero on failure.
EEXXAAMMPPLLEESS
find . -type f -print | same
SSEEEE AALLSSOO
find(1)
AAUUTTHHOORRSS
Roger E. Wolff <R.E.Wolff@BitWizard.nl>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Roland Illig <roland.illig@gmx.de>.
CCAAVVEEAATTSS
·· If your editor does not move the original aside before writing a new
copy, you will change the file in ALL incarnations when editing a
file. Patch works just fine: it moves the original aside before cre-
ating a new copy. I'm confident that I could learn Emacs to do it
this way too. I'm too lazy to figure it out, so if you happen to
know an easy way how to do this, please Email me at
<R.E.Wolff@BitWizard.nl>.
·· There is a 1024 (BUFSIZE) character limit to pathnames when using
symlinks.
NetBSD 4.0 July 14, 2004 NetBSD 4.0