svn.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 19 Dec 2013 13:44:09 +0200
changeset 1530 d41385c7d4cb
parent 1513 2a6cd59d5863
child 1531 330085d06687
permissions -rw-r--r--
Remove unnecessary .exe command suffix.
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::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
Where palced config files?
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
==========================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
The per-user configuration area currently contains three files two
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
configuration files ('config' and 'servers').
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
  /etc/subversion
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
                Unix system wide configurations.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  $HOME/.subversion
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
                Unix per-user configuration area.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
  %APPDATA%\Subversion
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
                Windows per-user configuration area.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
Copy repo from SourceForge to GoogleCode.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
=========================================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
  $ 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
    27
  $ svnsync --username NAME --password PASSWORD \
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
                sync https://PROJ.googlecode.com/svn https://PROJ.svn.sourceforge.net/svnroot/PROJ
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
Disable interactive conflict resolution.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
========================================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
Write in ``$HOME/.subversion/config``::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
  [miscellany]
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
  interactive-conflicts = no
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
Creating svn repo.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
==================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
  $ mkdir -p /srv/svn
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
  $ svnadmin create /srv/svn/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
  $ svn co file:///srv/svn/$repo $repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  $ cd /tmp/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
  $ mkdir trunk branches features tags
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
  $ svn add *
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
  $ svn st      # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  $ svn ci -m "Init repo."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
For multi-project repo do follow::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  $ mkdir -p /srv/svn
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  $ svnadmin create /srv/svn/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
  $ svn co file:///srv/svn/$repo $repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  $ cd /tmp/$repo
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
  $ 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
    58
  $ svn add *
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  $ svn st      # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
  $ svn ci -m "Init repo."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
Run local svn server.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
=====================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
1530
d41385c7d4cb Remove unnecessary .exe command suffix.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1513
diff changeset
    66
  $ 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
    67
  $ svn ls svn://localhost    # check all OK
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
  $ kill -l
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
Undo bad commit.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
================
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
  $ svn ci -m "Introduce first bug."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
  Sending        trunk/FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
  Transmitting file data .
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
  Committed revision 7.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
  $ svn ci -m "Make a lot of good changes."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    83
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    84
  Committed revision 8.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    85
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    86
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    87
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    88
  $ svn ci -m "Introduce second bug."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    90
  Committed revision 10.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    91
  $ emacs FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    92
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    93
  $ svn ci -m "Make a lot of good changes."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    94
  ...
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
Now you understand that revision 7 and 10 buggy. You decide revert changes::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
  $ svn merge -r 7:6 -r 10:9 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
  $ svn ci -m "Reverted revision 7 and 10."
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
For one changeset revert you can use shortly syntax::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
  $ svn merge -c -7 -c -10 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   104
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
Also you can use long diapason::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   106
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   107
  $ svn merge -r 10:6 FILE
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   108
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   109
Merge branches.
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   110
===============
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   111
::
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   113
  $ cd trunk
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
  $ svn mergeinfo --show-revs eligible ^/branches/feature
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
  $ svn merge ^/branches/feature
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
  $ svn ci -m 'Integrate feature X.'
2a6cd59d5863 Merge branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117