summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-26 09:13:51 +0000
committerNicholas Clark <nick@ccl4.org>2008-12-26 09:13:51 +0000
commite9c9f4ae5f2d0d58e16bec3b528c1d6eec0c2716 (patch)
tree32df7738b36c34c41acc5a1bf3a4da376db45638 /pod
parent4e32d3ada00dc86f30145cd90e757baad18afd5f (diff)
parentb16c2e4a254d31480561f2bca5aeaeb75328de9c (diff)
downloadperl-e9c9f4ae5f2d0d58e16bec3b528c1d6eec0c2716.tar.gz
Merge branch 'blead' of nicholas@perl5.git.perl.org:/gitroot/perl into blead
Diffstat (limited to 'pod')
-rw-r--r--pod/Makefile.SH9
-rw-r--r--pod/buildtoc2
-rw-r--r--pod/checkpods.PL85
-rw-r--r--pod/perl5110delta.pod9
-rw-r--r--pod/perl590delta.pod2
-rw-r--r--pod/perl595delta.pod6
-rw-r--r--pod/perlebcdic.pod2
-rw-r--r--pod/perlform.pod2
-rw-r--r--pod/perlfunc.pod10
-rw-r--r--pod/perlguts.pod6
-rw-r--r--pod/perlhack.pod376
-rw-r--r--pod/perlrepository.pod28
-rw-r--r--pod/perltodo.pod7
13 files changed, 65 insertions, 479 deletions
diff --git a/pod/Makefile.SH b/pod/Makefile.SH
index 74d299f7a1..0dd799b108 100644
--- a/pod/Makefile.SH
+++ b/pod/Makefile.SH
@@ -54,7 +54,7 @@ LDLIBPTH = $ldlibpth
## In the following dollars and backticks do not need the extra backslash.
$spitshell >>Makefile <<'!NO!SUBS!'
-CONVERTERS = pod2html pod2latex pod2man pod2text checkpods \
+CONVERTERS = pod2html pod2latex pod2man pod2text \
pod2usage podchecker podselect
HTMLROOT = / # Change this to fix cross-references in HTML
@@ -125,9 +125,9 @@ distclean: realclean
veryclean: distclean
-rm -f *~ *.orig
-check: checkpods
+check: podchecker
@echo "checking..."; \
- $(PERL) -I../lib checkpods $(POD)
+ $(PERL) -I../lib podchecker $(POD)
# Dependencies.
pod2latex: pod2latex.PL ../lib/Config.pm
@@ -142,9 +142,6 @@ pod2man: pod2man.PL ../lib/Config.pm
pod2text: pod2text.PL ../lib/Config.pm
$(LDLIBPTH) $(PERL) -I ../lib pod2text.PL
-checkpods: checkpods.PL ../lib/Config.pm
- $(LDLIBPTH) $(PERL) -I ../lib checkpods.PL
-
pod2usage: pod2usage.PL ../lib/Config.pm
$(PERL) -I ../lib pod2usage.PL
diff --git a/pod/buildtoc b/pod/buildtoc
index de88d8d693..4054fdac43 100644
--- a/pod/buildtoc
+++ b/pod/buildtoc
@@ -611,7 +611,7 @@ sub do_nmake {
1 while $makefile =~ s/\0\tcopy .*\n/\0/gm;
$makefile =~ s/\0+/join ("", &generate_nmake_1)/se;
- $makefile =~ s{(del /f [^\n]+checkpods[^\n]+).*?(pod2html)}
+ $makefile =~ s{(del /f [^\n]+podchecker[^\n]+).*?(pod2html)}
{"$1\n" . &generate_nmake_2."\n\t $2"}se;
$makefile;
}
diff --git a/pod/checkpods.PL b/pod/checkpods.PL
deleted file mode 100644
index 1466fb94d3..0000000000
--- a/pod/checkpods.PL
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/local/bin/perl
-
-use Config;
-use File::Basename qw(&basename &dirname);
-use Cwd;
-
-# List explicitly here the variables you want Configure to
-# generate. Metaconfig only looks for shell variables, so you
-# have to mention them as if they were shell variables, not
-# %Config entries. Thus you write
-# $startperl
-# to ensure Configure will look for $Config{startperl}.
-
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
-$file .= '.com' if $^O eq 'VMS';
-
-open OUT,">$file" or die "Can't create $file: $!";
-
-print "Extracting $file (with variable substitutions)\n";
-
-# In this section, perl variables will be expanded during extraction.
-# You can use $Config{...} to use Configure variables.
-
-print OUT <<"!GROK!THIS!";
-$Config{startperl}
- eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
- if \$running_under_some_shell;
-!GROK!THIS!
-
-# In the following, perl variables are not expanded during extraction.
-
-print OUT <<'!NO!SUBS!';
-# From roderick@gate.netThu Sep 5 17:19:30 1996
-# Date: Thu, 05 Sep 1996 00:11:22 -0400
-# From: Roderick Schertler <roderick@gate.net>
-# To: perl5-porters@africa.nicoh.com
-# Subject: POD lines with only spaces
-#
-# There are some places in the documentation where a POD directive is
-# ignored because the line before it contains whitespace (and so the
-# directive doesn't start a paragraph). This patch adds a way to check
-# for these to the pod Makefile (though it isn't made part of the build
-# process, which would be a good idea), and fixes those places where the
-# problem currently exists.
-#
-# Version 1.00 Original.
-# Version 1.01 Andy Dougherty <doughera@lafayette.edu>
-# Trivial modifications to output format for easier auto-parsing
-# Broke it out as a separate function to avoid nasty
-# Make/Shell/Perl quoting problems, and also to make it easier
-# to grow. Someone will probably want to rewrite in terms of
-# some sort of Pod::Checker module. Or something. Consider this
-# a placeholder for the future.
-# Version 1.02 Roderick Schertler <roderick@argon.org>
-# Check for pod directives following any kind of unempty line, not
-# just lines of whitespace.
-
-@directive = qw(head1 head2 item over back cut pod for begin end);
-@directive{@directive} = (1) x @directive;
-
-$exit = $last_unempty = 0;
-while (<>) {
- s/(\012|\015\012|\015)$//;
- if (/^=(\S+)/ && $directive{$1} && $last_unempty) {
- printf "%s: line %5d, no blank line preceding directive =%s\n",
- $ARGV, $., $1;
- $exit = 1;
- }
- $last_unempty = ($_ ne '');
- if (eof) {
- close(ARGV);
- $last_unempty = 0;
- }
-}
-exit $exit
-!NO!SUBS!
-
-close OUT or die "Can't close $file: $!";
-chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
-exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
diff --git a/pod/perl5110delta.pod b/pod/perl5110delta.pod
index 65cfb94c44..91b96822da 100644
--- a/pod/perl5110delta.pod
+++ b/pod/perl5110delta.pod
@@ -23,6 +23,15 @@ developement releases.
=head1 Selected Bug Fixes
+=over 4
+
+=item C<-I> on shebang line now adds directories in front of @INC
+
+as documented, and as does C<-I> when specified on the command-line.
+(Renée Bäcker)
+
+=back
+
=head1 New or Changed Diagnostics
=head1 Changed Internals
diff --git a/pod/perl590delta.pod b/pod/perl590delta.pod
index fdc6c314c1..db6f599597 100644
--- a/pod/perl590delta.pod
+++ b/pod/perl590delta.pod
@@ -485,8 +485,6 @@ of Perl in OS/400 PASE.
perlreref has been added: it is a regular expressions quick reference.
-=head1 Performance Enhancements
-
=head1 Installation and Configuration Improvements
The UNIX standard Perl location, F</usr/bin/perl>, is no longer
diff --git a/pod/perl595delta.pod b/pod/perl595delta.pod
index 96d061ac1a..246b2cc747 100644
--- a/pod/perl595delta.pod
+++ b/pod/perl595delta.pod
@@ -464,8 +464,6 @@ CSS. Some formatting problems were also corrected. (Jari Aalto)
A new manual page, L<perlunifaq> (the Perl Unicode FAQ), has been added
(Juerd Waalboer).
-=head1 Performance Enhancements
-
=head1 Installation and Configuration Improvements
=head2 C++ compatibility
@@ -563,10 +561,6 @@ an hash/array when the op is flagged with OPf_SPECIAL (Nicholas Clark).
=for p5p XXX new BIND SV type, #29544, #29642
-=head1 Known Problems
-
-=head2 Platform Specific Problems
-
=head1 Reporting Bugs
If you find what you think is a bug, you might check the articles
diff --git a/pod/perlebcdic.pod b/pod/perlebcdic.pod
index ca695a6e6d..ca4ef84408 100644
--- a/pod/perlebcdic.pod
+++ b/pod/perlebcdic.pod
@@ -73,7 +73,7 @@ E.g. CCSID 0037 may be referred to as 37 in places.
Perl can be compiled on platforms that run any of three commonly used EBCDIC
character sets, listed below.
-=head2 13 variant characters
+=head2 The 13 variant characters
Among IBM EBCDIC character code sets there are 13 characters that
are often mapped to different integer values. Those characters
diff --git a/pod/perlform.pod b/pod/perlform.pod
index 6bff194f92..3cfa1b768d 100644
--- a/pod/perlform.pod
+++ b/pod/perlform.pod
@@ -59,7 +59,7 @@ characters for field definitions:
X<format, picture line>
X<@> X<^> X<< < >> X<< | >> X<< > >> X<#> X<0> X<.> X<...>
X<@*> X<^*> X<~> X<~~>
-
+
@ start of regular field
^ start of special field
< pad character for left justification
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 82a80deca4..1d3823e574 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -2117,7 +2117,7 @@ C<Linux::Pid>.
X<getpriority> X<priority> X<nice>
Returns the current priority for a process, a process group, or a user.
-(See L<getpriority(2)>.) Will raise a fatal exception if used on a
+(See C<getpriority(2)>.) Will raise a fatal exception if used on a
machine that doesn't implement getpriority(2).
=item getpwnam NAME
@@ -3274,7 +3274,7 @@ See L<perliol> for detailed info on PerlIO.
You may also, in the Bourne shell tradition, specify an EXPR beginning
with C<< '>&' >>, in which case the rest of the string is interpreted
as the name of a filehandle (or file descriptor, if numeric) to be
-duped (as L<dup(2)>) and opened. You may use C<&> after C<< > >>,
+duped (as C<dup(2)>) and opened. You may use C<&> after C<< > >>,
C<<< >> >>>, C<< < >>, C<< +> >>, C<<< +>> >>>, and C<< +< >>.
The mode you specify should match the mode of the original filehandle.
(Duping a filehandle does not take into account any existing contents
@@ -3305,7 +3305,7 @@ C<STDERR> using various methods:
If you specify C<< '<&=X' >>, where C<X> is a file descriptor number
or a filehandle, then Perl will do an equivalent of C's C<fdopen> of
-that file descriptor (and not call L<dup(2)>); this is more
+that file descriptor (and not call C<dup(2)>); this is more
parsimonious of file descriptors. For example:
# open for input, reusing the fileno of $fd
@@ -3418,7 +3418,7 @@ but will not work on a filename which happens to have a trailing space, while
will have exactly the opposite restrictions.
-If you want a "real" C C<open> (see L<open(2)> on your system), then you
+If you want a "real" C C<open> (see C<open(2)> on your system), then you
should use the C<sysopen> function, which involves no such magic (but
may use subtly different filemodes than Perl open(), which is mapped
to C fopen()). This is
@@ -5561,7 +5561,7 @@ X<sprintf>
Returns a string formatted by the usual C<printf> conventions of the C
library function C<sprintf>. See below for more details
-and see L<sprintf(3)> or L<printf(3)> on your system for an explanation of
+and see C<sprintf(3)> or C<printf(3)> on your system for an explanation of
the general principles.
For example:
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index 58e866db62..3ce60d0599 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -1959,7 +1959,7 @@ sanctioned for use in extensions) begins like this:
void
Perl_sv_setiv(pTHX_ SV* dsv, IV num)
-C<pTHX_> is one of a number of macros (in perl.h) that hide the
+C<pTHX_> is one of a number of macros (in F<perl.h>) that hide the
details of the interpreter's context. THX stands for "thread", "this",
or "thingy", as the case may be. (And no, George Lucas is not involved. :-)
The first character could be 'p' for a B<p>rototype, 'a' for B<a>rgument,
@@ -2028,7 +2028,7 @@ built with PERL_IMPLICIT_CONTEXT enabled.
There are three ways to do this. First, the easy but inefficient way,
which is also the default, in order to maintain source compatibility
-with extensions: whenever XSUB.h is #included, it redefines the aTHX
+with extensions: whenever F<XSUB.h> is #included, it redefines the aTHX
and aTHX_ macros to call a function that will return the context.
Thus, something like:
@@ -2165,7 +2165,7 @@ This allows the ability to provide an extra pointer (called the "host"
environment) for all the system calls. This makes it possible for
all the system stuff to maintain their own state, broken down into
seven C structures. These are thin wrappers around the usual system
-calls (see win32/perllib.c) for the default perl executable, but for a
+calls (see F<win32/perllib.c>) for the default perl executable, but for a
more ambitious host (like the one that would do fork() emulation) all
the extra work needed to pretend that different interpreters are
actually different "processes", would be done here.
diff --git a/pod/perlhack.pod b/pod/perlhack.pod
index ef648e7776..dde67a3a59 100644
--- a/pod/perlhack.pod
+++ b/pod/perlhack.pod
@@ -207,23 +207,22 @@ interpreter. "A core module" is one that ships with Perl.
=head2 Keeping in sync
The source code to the Perl interpreter, in its different versions, is
-kept in a repository managed by a revision control system ( which is
-currently the Perforce program, see http://perforce.com/ ). The
-pumpkings and a few others have access to the repository to check in
-changes. Periodically the pumpking for the development version of Perl
-will release a new version, so the rest of the porters can see what's
-changed. The current state of the main trunk of repository, and patches
-that describe the individual changes that have happened since the last
-public release are available at this location:
+kept in a repository managed by the git revision control system. The
+pumpkings and a few others have write access to the repository to check in
+changes.
- http://public.activestate.com/pub/apc/
- ftp://public.activestate.com/pub/apc/
+How to clone and use the git perl repository is described in L<perlrepository>.
-If you're looking for a particular change, or a change that affected
-a particular set of files, you may find the B<Perl Repository Browser>
-useful:
+You can also choose to use rsync to get a copy of the current source tree
+for the bleadperl branch and all maintainance branches :
- http://public.activestate.com/cgi-bin/perlbrowse
+ $ rsync -avz rsync://perl5.git.perl.org/APC/perl-current .
+ $ rsync -avz rsync://perl5.git.perl.org/APC/perl-5.10.x .
+ $ rsync -avz rsync://perl5.git.perl.org/APC/perl-5.8.x .
+ $ rsync -avz rsync://perl5.git.perl.org/APC/perl-5.6.x .
+ $ rsync -avz rsync://perl5.git.perl.org/APC/perl-5.005xx .
+
+(Add the C<--delete> option to remove leftover files)
You may also want to subscribe to the perl5-changes mailing list to
receive a copy of each patch that gets submitted to the maintenance
@@ -240,334 +239,6 @@ Needless to say, the source code in perl-current is usually in a perpetual
state of evolution. You should expect it to be very buggy. Do B<not> use
it for any purpose other than testing and development.
-Keeping in sync with the most recent branch can be done in several ways,
-but the most convenient and reliable way is using B<rsync>, available at
-ftp://rsync.samba.org/pub/rsync/ . (You can also get the most recent
-branch by FTP.)
-
-If you choose to keep in sync using rsync, there are two approaches
-to doing so:
-
-=over 4
-
-=item rsync'ing the source tree
-
-Presuming you are in the directory where your perl source resides
-and you have rsync installed and available, you can "upgrade" to
-the bleadperl using:
-
- # rsync -avz rsync://public.activestate.com/perl-current/ .
-
-This takes care of updating every single item in the source tree to
-the latest applied patch level, creating files that are new (to your
-distribution) and setting date/time stamps of existing files to
-reflect the bleadperl status.
-
-Note that this will not delete any files that were in '.' before
-the rsync. Once you are sure that the rsync is running correctly,
-run it with the --delete and the --dry-run options like this:
-
- # rsync -avz --delete --dry-run rsync://public.activestate.com/perl-current/ .
-
-This will I<simulate> an rsync run that also deletes files not
-present in the bleadperl master copy. Observe the results from
-this run closely. If you are sure that the actual run would delete
-no files precious to you, you could remove the '--dry-run' option.
-
-You can than check what patch was the latest that was applied by
-looking in the file B<.patch>, which will show the number of the
-latest patch.
-
-If you have more than one machine to keep in sync, and not all of
-them have access to the WAN (so you are not able to rsync all the
-source trees to the real source), there are some ways to get around
-this problem.
-
-=over 4
-
-=item Using rsync over the LAN
-
-Set up a local rsync server which makes the rsynced source tree
-available to the LAN and sync the other machines against this
-directory.
-
-From http://rsync.samba.org/README.html :
-
- "Rsync uses rsh or ssh for communication. It does not need to be
- setuid and requires no special privileges for installation. It
- does not require an inetd entry or a daemon. You must, however,
- have a working rsh or ssh system. Using ssh is recommended for
- its security features."
-
-=item Using pushing over the NFS
-
-Having the other systems mounted over the NFS, you can take an
-active pushing approach by checking the just updated tree against
-the other not-yet synced trees. An example would be
-
- #!/usr/bin/perl -w
-
- use strict;
- use File::Copy;
-
- my %MF = map {
- m/(\S+)/;
- $1 => [ (stat $1)[2, 7, 9] ]; # mode, size, mtime
- } `cat MANIFEST`;
-
- my %remote = map { $_ => "/$_/pro/3gl/CPAN/perl-5.7.1" } qw(host1 host2);
-
- foreach my $host (keys %remote) {
- unless (-d $remote{$host}) {
- print STDERR "Cannot Xsync for host $host\n";
- next;
- }
- foreach my $file (keys %MF) {
- my $rfile = "$remote{$host}/$file";
- my ($mode, $size, $mtime) = (stat $rfile)[2, 7, 9];
- defined $size or ($mode, $size, $mtime) = (0, 0, 0);
- $size == $MF{$file}[1] && $mtime == $MF{$file}[2] and next;
- printf "%4s %-34s %8d %9d %8d %9d\n",
- $host, $file, $MF{$file}[1], $MF{$file}[2], $size, $mtime;
- unlink $rfile;
- copy ($file, $rfile);
- utime time, $MF{$file}[2], $rfile;
- chmod $MF{$file}[0], $rfile;
- }
- }
-
-though this is not perfect. It could be improved with checking
-file checksums before updating. Not all NFS systems support
-reliable utime support (when used over the NFS).
-
-=back
-
-=item rsync'ing the patches
-
-The source tree is maintained by the pumpking who applies patches to
-the files in the tree. These patches are either created by the
-pumpking himself using C<diff -c> after updating the file manually or
-by applying patches sent in by posters on the perl5-porters list.
-These patches are also saved and rsync'able, so you can apply them
-yourself to the source files.
-
-Presuming you are in a directory where your patches reside, you can
-get them in sync with
-
- # rsync -avz rsync://public.activestate.com/perl-current-diffs/ .
-
-This makes sure the latest available patch is downloaded to your
-patch directory.
-
-It's then up to you to apply these patches, using something like
-
- # last="`cat ../perl-current/.patch`.gz"
- # rsync -avz rsync://public.activestate.com/perl-current-diffs/ .
- # find . -name '*.gz' -newer $last -exec gzcat {} \; >blead.patch
- # cd ../perl-current
- # patch -p1 -N <../perl-current-diffs/blead.patch
-
-or, since this is only a hint towards how it works, use CPAN-patchaperl
-from Andreas König to have better control over the patching process.
-
-=back
-
-=head2 Why rsync the source tree
-
-=over 4
-
-=item It's easier to rsync the source tree
-
-Since you don't have to apply the patches yourself, you are sure all
-files in the source tree are in the right state.
-
-=item It's more reliable
-
-While both the rsync-able source and patch areas are automatically
-updated every few minutes, keep in mind that applying patches may
-sometimes mean careful hand-holding, especially if your version of
-the C<patch> program does not understand how to deal with new files,
-files with 8-bit characters, or files without trailing newlines.
-
-=back
-
-=head2 Why rsync the patches
-
-=over 4
-
-=item It's easier to rsync the patches
-
-If you have more than one machine that you want to keep in track with
-bleadperl, it's easier to rsync the patches only once and then apply
-them to all the source trees on the different machines.
-
-In case you try to keep in pace on 5 different machines, for which
-only one of them has access to the WAN, rsync'ing all the source
-trees should than be done 5 times over the NFS. Having
-rsync'ed the patches only once, I can apply them to all the source
-trees automatically. Need you say more ;-)
-
-=item It's a good reference
-
-If you do not only like to have the most recent development branch,
-but also like to B<fix> bugs, or extend features, you want to dive
-into the sources. If you are a seasoned perl core diver, you don't
-need no manuals, tips, roadmaps, perlguts.pod or other aids to find
-your way around. But if you are a starter, the patches may help you
-in finding where you should start and how to change the bits that
-bug you.
-
-The file B<Changes> is updated on occasions the pumpking sees as his
-own little sync points. On those occasions, he releases a tar-ball of
-the current source tree (i.e. perl@7582.tar.gz), which will be an
-excellent point to start with when choosing to use the 'rsync the
-patches' scheme. Starting with perl@7582, which means a set of source
-files on which the latest applied patch is number 7582, you apply all
-succeeding patches available from then on (7583, 7584, ...).
-
-You can use the patches later as a kind of search archive.
-
-=over 4
-
-=item Finding a start point
-
-If you want to fix/change the behaviour of function/feature Foo, just
-scan the patches for patches that mention Foo either in the subject,
-the comments, or the body of the fix. A good chance the patch shows
-you the files that are affected by that patch which are very likely
-to be the starting point of your journey into the guts of perl.
-
-=item Finding how to fix a bug
-
-If you've found I<where> the function/feature Foo misbehaves, but you
-don't know how to fix it (but you do know the change you want to
-make), you can, again, peruse the patches for similar changes and
-look how others apply the fix.
-
-=item Finding the source of misbehaviour
-
-When you keep in sync with bleadperl, the pumpking would love to
-I<see> that the community efforts really work. So after each of his
-sync points, you are to 'make test' to check if everything is still
-in working order. If it is, you do 'make ok', which will send an OK
-report to I<perlbug@perl.org>. (If you do not have access to a mailer
-from the system you just finished successfully 'make test', you can
-do 'make okfile', which creates the file C<perl.ok>, which you can
-than take to your favourite mailer and mail yourself).
-
-But of course, as always, things will not always lead to a success
-path, and one or more test do not pass the 'make test'. Before
-sending in a bug report (using 'make nok' or 'make nokfile'), check
-the mailing list if someone else has reported the bug already and if
-so, confirm it by replying to that message. If not, you might want to
-trace the source of that misbehaviour B<before> sending in the bug,
-which will help all the other porters in finding the solution.
-
-Here the saved patches come in very handy. You can check the list of
-patches to see which patch changed what file and what change caused
-the misbehaviour. If you note that in the bug report, it saves the
-one trying to solve it, looking for that point.
-
-=back
-
-If searching the patches is too bothersome, you might consider using
-perl's bugtron to find more information about discussions and
-ramblings on posted bugs.
-
-If you want to get the best of both worlds, rsync both the source
-tree for convenience, reliability and ease and rsync the patches
-for reference.
-
-=back
-
-=head2 Working with the source
-
-Because you cannot use the Perforce client, you cannot easily generate
-diffs against the repository, nor will merges occur when you update
-via rsync. If you edit a file locally and then rsync against the
-latest source, changes made in the remote copy will I<overwrite> your
-local versions!
-
-The best way to deal with this is to maintain a tree of symlinks to
-the rsync'd source. Then, when you want to edit a file, you remove
-the symlink, copy the real file into the other tree, and edit it. You
-can then diff your edited file against the original to generate a
-patch, and you can safely update the original tree.
-
-Perl's F<Configure> script can generate this tree of symlinks for you.
-The following example assumes that you have used rsync to pull a copy
-of the Perl source into the F<perl-rsync> directory. In the directory
-above that one, you can execute the following commands:
-
- mkdir perl-dev
- cd perl-dev
- ../perl-rsync/Configure -Dmksymlinks -Dusedevel -D"optimize=-g"
-
-This will start the Perl configuration process. After a few prompts,
-you should see something like this:
-
- Symbolic links are supported.
-
- Checking how to test for symbolic links...
- Your builtin 'test -h' may be broken.
- Trying external '/usr/bin/test -h'.
- You can test for symbolic links with '/usr/bin/test -h'.
-
- Creating the symbolic links...
- (First creating the subdirectories...)
- (Then creating the symlinks...)
-
-The specifics may vary based on your operating system, of course.
-After it's all done, you
-will see that the directory you are in has a tree of symlinks to the
-F<perl-rsync> directories and files.
-
-If you plan to do a lot of work with the Perl source, here are some
-Bourne shell script functions that can make your life easier:
-
- function edit {
- if [ -L $1 ]; then
- mv $1 $1.orig
- cp $1.orig $1
- vi $1
- else
- vi $1
- fi
- }
-
- function unedit {
- if [ -L $1.orig ]; then
- rm $1
- mv $1.orig $1
- fi
- }
-
-Replace "vi" with your favorite flavor of editor.
-
-Here is another function which will quickly generate a patch for the
-files which have been edited in your symlink tree:
-
- mkpatchorig() {
- local diffopts
- for f in `find . -name '*.orig' | sed s,^\./,,`
- do
- case `echo $f | sed 's,.orig$,,;s,.*\.,,'` in
- c) diffopts=-p ;;
- pod) diffopts='-F^=' ;;
- *) diffopts= ;;
- esac
- diff -du $diffopts $f `echo $f | sed 's,.orig$,,'`
- done
- }
-
-This function produces patches which include enough context to make
-your changes obvious. This makes it easier for the Perl pumpking(s)
-to review them when you send them to the perl5-porters list, and that
-means they're more likely to get applied.
-
-This function assumed a GNU diff, and may require some tweaking for
-other diff variants.
-
=head2 Perlbug administration
There is a single remote administrative interface for modifying bug status,
@@ -587,20 +258,14 @@ Always submit patches to I<perl5-porters@perl.org>. If you're
patching a core module and there's an author listed, send the author a
copy (see L<Patching a core module>). This lets other porters review
your patch, which catches a surprising number of errors in patches.
-Either use the diff program (available in source code form from
-ftp://ftp.gnu.org/pub/gnu/ , or use Johan Vromans' I<makepatch>
-(available from I<CPAN/authors/id/JV/>). Unified diffs are preferred,
-but context diffs are accepted. Do not send RCS-style diffs or diffs
-without context lines. More information is given in the
-I<Porting/patching.pod> file in the Perl source distribution. Please
-patch against the latest B<development> version. (e.g., even if you're
-fixing a bug in the 5.8 track, patch against the latest B<development>
-version rsynced from rsync://public.activestate.com/perl-current/ )
+Please patch against the latest B<development> version. (e.g., even if
+you're fixing a bug in the 5.8 track, patch against the C<blead> branch in
+the git repository.)
If changes are accepted, they are applied to the development branch. Then
-the 5.8 pumpking decides which of those patches is to be backported to the
-maint branch. Only patches that survive the heat of the development
-branch get applied to maintenance versions.
+the maintainance pumpking decides which of those patches is to be
+backported to the maint branch. Only patches that survive the heat of the
+development branch get applied to maintenance versions.
Your patch should update the documentation and test suite. See
L<Writing a test>. If you have added or removed files in the distribution,
@@ -3699,3 +3364,6 @@ is, after all, what it's for.
This document was written by Nathan Torkington, and is maintained by
the perl5-porters mailing list.
+=head1 SEE ALSO
+
+L<perlrepository>
diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
index 4c2a7c9926..f075213ade 100644
--- a/pod/perlrepository.pod
+++ b/pod/perlrepository.pod
@@ -32,7 +32,7 @@ the repository using the Git protocol (which uses port 9418):
git clone git://perl5.git.perl.org/perl.git perl-git
-This clones the repository and makes a local copy in the 'perl-git'
+This clones the repository and makes a local copy in the F<perl-git>
directory.
If your local network does not allow you to use port 9418, then you can
@@ -40,7 +40,7 @@ fetch a copy of the repository over HTTP (this is slower):
git clone http://perl5.git.perl.org/perl.git perl-http
-This clones the repository and makes a local copy in the 'perl-http'
+This clones the repository and makes a local copy in the F<perl-http>
directory.
=head2 WRITE ACCESS TO THE REPOSITORY
@@ -79,7 +79,7 @@ remote for ssh access:
% git remote add camel user@camel:/gitroot/perl.git
This allows you to update your local repository by pulling from
-C<origin>, which is faster and doesn't require you to authentify, and
+C<origin>, which is faster and doesn't require you to authenticate, and
to push your changes back with the C<camel> remote:
% git fetch camel
@@ -93,14 +93,13 @@ themselves should have been fetched when pulling from C<origin>.
Once you have changed into the repository directory, you can inspect
it.
-
After a clone the repository will contain a single local branch, which
will be the current branch as well, as indicated by the asterix.
% git branch
* blead
-Using the -a switch to branch will also show the remote tracking
+Using the -a switch to C<branch> will also show the remote tracking
branches in the repository:
% git branch -a
@@ -257,7 +256,7 @@ to Orange Brocard, we should change his name in the AUTHORS file:
You can see what files are changed:
% git status
- # On branch blead
+ # On branch orange
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
@@ -385,6 +384,11 @@ However, be aware this will delete ALL untracked content. You can use
to remove all ignored untracked files, such as build and test
byproduct, but leave any manually created files alone.
+If you only want to cancel some uncommitted edits, you can use
+C<git checkout> and give it a list of files to be reverted.
+
+If you want to cancel one or several commits, you can use C<git reset>.
+
=head1 BISECTING
C<git> provides a built-in way to determine, with a binary search in
@@ -456,7 +460,15 @@ tracking branch:
% git checkout --track -b maint-5.005 origin/maint-5.005
-This creates a local branch named maint-5.005, which tracks the remote
-branch origin/maint-5.005. Then you can pull, commit, merge and push as
+This creates a local branch named C<maint-5.005>, which tracks the remote
+branch C<origin/maint-5.005>. Then you can pull, commit, merge and push as
before.
+You can also cherry-pick commits from blead and another branch, by
+using the C<git cherry-pick> command. It is recommended to use the B<-x>
+option to C<git cherry-pick> in order to record the SHA1 of the original
+commit in the new commit message.
+
+=head1 SEE ALSO
+
+The git documentation, accessible via C<git help command>.
diff --git a/pod/perltodo.pod b/pod/perltodo.pod
index 71aa49d154..00effc392f 100644
--- a/pod/perltodo.pod
+++ b/pod/perltodo.pod
@@ -91,13 +91,6 @@ is needed to improve the cross-linking.
The addition of C<Pod::Simple> and its related modules may make this task
easier to complete.
-=head2 merge checkpods and podchecker
-
-F<pod/checkpods.PL> (and C<make check> in the F<pod/> subdirectory)
-implements a very basic check for pod files, but the errors it discovers
-aren't found by podchecker. Add this check to podchecker, get rid of
-checkpods and have C<make check> use podchecker.
-
=head2 Parallel testing
(This probably impacts much more than the core: also the Test::Harness