This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
merge in changes
[perl5.git] / pod / perlrepository.pod
1 =head1 NAME
2
3 perlrepository - Using the Perl source repository
4
5 =head1 SYNOPSIS
6
7 All of Perl's source code is kept centrally in a Git repository. The
8 repository contains many Perl revisions from Perl 1 onwards and all
9 the revisions from Perforce, the version control system we were using
10 previously. This repository is accessible in different ways.
11
12 The full repository takes up about 80MB of disk space. A check out of
13 blead takes up about 160MB of disk space (including the repository). A
14 build of blead takes up about 200MB (including the repository and the
15 check out).
16
17 =head1 GETTING ACCESS TO THE REPOSITORY
18
19 =head2 READ ACCESS VIA THE WEB
20
21 You may access this over the web. This allows you to browse the tree,
22 see recent commits, search for particular commits and more. You may
23 access it at:
24
25   http://perl5.git.perl.org/perl.git
26
27 =head2 READ ACCESS VIA GIT
28
29 You will need a copy of Git for your computer. You can fetch a copy of
30 the repository using the Git protocol (which uses port 9418):
31
32   git clone git://perl5.git.perl.org/perl.git perl-git
33
34 This clones the repository and makes a local copy in the 'perl-git'
35 directory.
36
37 If your local network does not allow you to use port 9418, then you can
38 fetch a copy of the repository over HTTP:
39
40   git clone http://perl5.git.perl.org/perl.git perl-http
41
42 This clones the repository and makes a local copy in the 'perl-http'
43 directory.
44
45 =head2 WRITE ACCESS TO THE REPOSITORY
46
47 If you are a committer, then you can fetch a copy of the repository that
48 you can push back on with:
49
50   git clone ssh://perl5.git.perl.org/gitroot/perl.git perl-ssh
51
52 This clones the repository and makes a local copy in the 'perl-ssh'
53 directory.
54
55 If you clone using git, which is faster than ssh, then you will need to
56 modify your config in order to enable pushing. Edit .git/config where 
57 you will see something like:
58
59   [remote "origin"]
60   url = git://perl5.git.perl.org/perl.git
61
62 change that to something like this:
63
64   [remote "origin"]
65   url = ssh://perl5.git.perl.org/gitroot/perl.git
66
67 NOTE: there are symlinks set up so that the /gitroot is actually optional.
68
69 =head1 OVERVIEW OF THE REPOSITORY
70
71 Once you have changed into the repository directory, you can inspect it.
72
73 The repository contains a few branches:
74
75   % git branch -a * blead
76     origin/HEAD
77     origin/blead
78   ...
79
80 You can see recent commits:
81
82   % git log 
83   ...
84
85 And pull new changes from the repository:
86
87   % git pull
88   ...