svn.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1779 d57075ff7c32
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
.. include:: HEADER.rst
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=============
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 Subversion.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
=============
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
.. contents::
1905
fba288d59662 Include only local subsections into TOC. This prevent duplication of
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1779
diff changeset
     8
   :local:
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
Where palced config files?
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
==========================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
The per-user configuration area currently contains three files two
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
configuration files ('config' and 'servers').
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
1777
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    16
  ``/etc/subversion``
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    17
    Unix system wide configurations.
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    18
  ``$HOME/.subversion``
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    19
    Unix per-user configuration area.
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    20
  ``%APPDATA%\Subversion``
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    21
    Windows per-user configuration area.
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    22
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    23
Coping repository.
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    24
==================
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
1777
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    26
Making local repository copy::
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    27
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    28
  $ svnadmin create $SVNROOT
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    29
  $ svnsync init file://$SVNROOT svn://$REMOTE
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    30
  $ svnsync synchronize file://$SVNROOT
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    31
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    32
Note that you can't relocate working copy to new repository copy becase of::
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    33
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    34
  $ svn relocate file://$SVNROOT
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    35
  svn: E195009: The repository at 'file:///home/user/devel/repo-copy' has uuid 'b064fe9f-b7ba-459e-afdf-3429ad89a318', but the WC has '11827c6b-1af5-4614-8a8b-dda7fb34cd94'
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    36
d9b134f80a66 Coping repository.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1531
diff changeset
    37
Coping repository from SourceForge to GoogleCode::
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
  $ svnsync init https://PROJ.googlecode.com/svn https://PROJ.svn.sourceforge.net/svnroot/PROJ
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
  $ svnsync --username NAME --password PASSWORD \
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
                sync https://PROJ.googlecode.com/svn https://PROJ.svn.sourceforge.net/svnroot/PROJ
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
Disable interactive conflict resolution.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
========================================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
Write in ``$HOME/.subversion/config``::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
  [miscellany]
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  interactive-conflicts = no
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
Creating svn repo.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
==================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
  $ mkdir -p /srv/svn
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  $ svnadmin create /srv/svn/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
  $ svn co file:///srv/svn/$repo $repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
  $ cd /tmp/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  $ mkdir trunk branches features tags
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
  $ svn add *
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
  $ svn st      # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
  $ svn ci -m "Init repo."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
For multi-project repo do follow::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
  $ mkdir -p /srv/svn
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
  $ svnadmin create /srv/svn/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
  $ svn co file:///srv/svn/$repo $repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
  $ cd /tmp/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
  $ for proj in $proj1 $proj2; do mkdir $proj/trunk $proj/branches $proj/features $proj/tags; done
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
  $ svn add *
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
  $ svn st      # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
  $ svn ci -m "Init repo."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
Run local svn server.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
=====================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
1530
d41385c7d4cb Remove unnecessary .exe command suffix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    79
  $ svnserve -d --pid-file=svnserve.pid --root=/srv/svn/proj  # default port: 3690
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
  $ svn ls svn://localhost    # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
  $ kill -l
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    83
Undo bad commit.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    84
================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    85
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    86
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    87
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    88
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
  $ svn ci -m "Introduce first bug."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    90
  Sending        trunk/FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    91
  Transmitting file data .
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    92
  Committed revision 7.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    93
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    94
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
  $ svn ci -m "Make a lot of good changes."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
  Committed revision 8.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
  $ svn ci -m "Introduce second bug."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
  Committed revision 10.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   104
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   106
  $ svn ci -m "Make a lot of good changes."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   107
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   108
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   109
Now you understand that revision 7 and 10 buggy. You decide revert changes::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   110
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   111
  $ svn merge -r 7:6 -r 10:9 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
  $ svn ci -m "Reverted revision 7 and 10."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   113
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
For one changeset revert you can use shortly syntax::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
  $ svn merge -c -7 -c -10 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117
1531
330085d06687 Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1530
diff changeset
   118
Also you can use ranges::
1513
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   119
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   120
  $ svn merge -r 10:6 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   122
Merge branches.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   123
===============
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   124
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   125
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   126
  $ cd trunk
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   127
  $ svn mergeinfo --show-revs eligible ^/branches/feature
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   128
  $ svn merge ^/branches/feature
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   129
  $ svn ci -m 'Integrate feature X.'
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   130
1778
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   131
Fix EOL style.
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   132
==============
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   133
::
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   134
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   135
  $ find . -type f -name '*.java' -exec svn propset svn:eol-style native {} ';'
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   136
  $ svn ci -m 'Fix svn:eol-style.'
2ea02b27659d Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1777
diff changeset
   137
1779
d57075ff7c32 Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1778
diff changeset
   138
Note that this actions pollute history. For example every line of file with
d57075ff7c32 Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1778
diff changeset
   139
CR/LF (created on Windows on file without ``svn:eol-style native``) after this
d57075ff7c32 Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1778
diff changeset
   140
actions would have new author in ``svn annotate``, and ``svn diff`` will show
d57075ff7c32 Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1778
diff changeset
   141
all on all change.
d57075ff7c32 Fix EOL style.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1778
diff changeset
   142