Configuration management was introduced in the 1960s to resolve the inability of defense contractors to build a 2nd unit identical to the 1st. Designs for the 2nd unit did not accurately represent the 1st unit.
$ svn diff -c 9238
?
svn blame
?
svn annotate
?
property
en subversion
scvn propget
? ¿Cómo se usa?
scvn propset
? ¿Cómo se usa?
-F
?
$ svn propset license -F /path/to/LICENSE calc/button.c
For this reason, you might choose—especially in the revision property use case—to simply add your metadata to the revision's log message using some policy-driven (and perhaps programmatically enforced) formatting that is designed to be quickly parsed from the output of svn log. It is quite common to see the following in Subversion log messages: Issue(s): IZ2376, IZ1919 Reviewed by: sally This fixes a nasty segfault in the wort frabbing process … But here again lies some misfortune. Subversion doesn't yet provide a log message templating mechanism, which would go a long way toward helping users be consistent with the formatting of their log-embedded revision metadata.¿Qué se le ocurre para hacer que el editor se abra con una plantilla dada?
svn propedit
?
svn propedit
?
[helpers] ### Set editor to the command used to invoke your text editor. ### This will override the environment variables that Subversion ### examines by default to find this information ($EDITOR, ### et al). # editor-cmd = editor (vi, emacs, notepad, etc.)¿Para que sirven?
$ svn proplist calc/button.cy
$ svn proplist -v calc/button.c?
svn status
y svn diff
los cambios
en las propiedades?
.prej
?
svn:eol-style
?
svn:ignore
?
svn:executable
?
¿Que argumentos lleva?
svn:mime-type
?
~/.subversion/config
?
enable-auto-props = yes [auto-props] *.c = svn:eol-style=native *.cpp = svn:eol-style=native *.h = svn:eol-style=native # *.dsp = svn:eol-style=CRLF # *.dsw = svn:eol-style=CRLF *.sh = svn:eol-style=native;svn:executable *.pl = svn:eol-style=native;svn:executable # *.txt = svn:eol-style=native *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg Makefile = svn:eol-style=native
svn:externals
? ¿Para que sirve?
¿Que limitaciones tiene?
$ cat >svn_ext_val.txt dir_of_repo_one http://svn.my.com/path/to/repo_one dir_of_repo_two http://svn.my.com/path/to/repo_two $ svn propset svn:externals . -F svn_ext_val.txt
shopt
?
¿Que hace este comando?
$shopt -s extglob progcomp
complete
?
¿Que hace esta línea?
complete -W 'add blame praise annotate cat checkout co cleanup commit ci copy delete del \ remove rm diff di export help h import info list ls log merge mkdir move mv \ rename ren propdel pdel pd propedit pedit pe propget pget pg proplist plist pl \ propset pset ps resolved revert status stat st switch sw update up' svn
svnadmin hotcopy RUTA_REPOS NUEVA_RUTA_REPOS
?
$ svnlook youngest repository/
?
svnadmin dump
y svnadmin load
?
-bash-3.2$ svnadmin dump repository/ > dumprep.6 ?
pp2@nereida:~$ ssh banot cat dumprep.6 | svnadmin load mietsiirep? ¿Como fue creado
mietsiirep
?
-bash-3.2$ svnadmin dump --incremental --revision 1:4 repository > dumprep.1to4 -bash-3.2$ svnadmin dump --incremental --revision 5:6 repository > dumprep.5to6
$ ssh banot cat dumprep.1to4 | svnadmin load mietsiiincrep $ ssh banot cat dumprep.5to6 | svnadmin load mietsiiincrep?
$ svn merge http://svn.example.com/repos/calc/trunk
patch
y usar svn merge
?
$ svn merge http://svn.example.com/repos/calc/trunk
$ pwd /home/user/calc-trunk $ svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch¿Que
diff
se hace?
$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \ -m "Remove my-calc-branch." Committed revision 392.
svn:mergeinfo
?
svn:mergeinfo
?
$ svn mergeinfo http://svn.example.com/repos/calc/trunk
$ svn mergeinfo http://svn.example.com/repos/calc/trunk --show-revs eligible
$ svn merge -c 303 http://svn.example.com/repos/calc/trunk
?
$ svn merge -c -303 http://svn.example.com/repos/calc/trunk
?
$ svn diff -c 355 http://svn.example.com/repos/calc/trunk
$ svn merge -c 355 http://svn.example.com/repos/calc/trunk
$ svn propget svn:mergeinfo . /trunk:341-349,355
$ svn mergeinfo http://svn.example.com/repos/calc/trunk --show-revs eligible r350 r351 r352 r353 r354 r356 r357 r358 r359 r360
~/src/subversion/TRY-MGM-cache-pages$ svn merge svn+ssh://banot/home/casiano/repository/ejemplo/tags/REL-1.0 \ svn+ssh://banot/home/casiano/repository/ejemplo/tags/REL-2.0 \ .
$ svn merge http://svn.example.com/repos/calc/trunk --dry-run
~/src/subversion/TRY-MGM-cache-pages$ svn merge -r10:11 svn+ssh://banot/home/casiano/repository/ejemplo/trunk/
svn merge
. ¿Cómo deshago los cambios introducidos en mi
copia de trabajo debidos a la mezcla y vuelvo
a la situación anterior?
svn merge
.
¿Cual es el significado de los ficheros
filename.working
, filename.left
y filename.right
?
$ svn merge -c 3328 --record-only http://svn.example.com/repos/calc/trunk
$ svn log -v -r 390 -g
$ svn blame button.c -g
A lesser-known fact about Subversion is that it lacks true renames
$ cd calc $ svn info | grep URL URL: http://svn.example.com/repos/calc/trunk $ svn switch http://svn.example.com/repos/calc/branches/my-calc-branch
merge
$ pwd /home/user/my-calc-branch $ svn merge http://svn.example.com/repos/calc/trunkSi es la primera vez que se ejecuta en la copia de trabajo de la rama?
merge
$ svn merge http://svn.example.com/repos/calc/trunkla siguiente vez que se aplica? ¿Que changesets se aplican?
$ pwd /home/user/calc-trunk $ svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch¿Que cambios se aplican?
$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch -m "Remove my-calc-branch."
svn:mergeinfo
?
$ svn mergeinfo http://svn.example.com/repos/calc/trunk
$ svn mergeinfo http://svn.example.com/repos/calc/trunk --show-revs eligible
$ svn merge http://svn.example.com/repos/calc/trunk --dry-run
commit
(revisión 303) eran erróneos.
¿Cómo podemos usar svn merge
para deshacer el cambio?
$ svn merge -c 355 http://svn.example.com/repos/calc/trunk¿Cual será la salida de
propget
después de este merge
?
$ svn commit -m '...' $ svn propget svn:mergeinfo .¿Que salida producen los siguientes comandos? (Suponga que el tronco va por la revision 360).
$ svn mergeinfo http://svn.example.com/repos/calc/trunk --show-revs eligible $ svn merge http://svn.example.com/repos/calc/trunk
pre-commit
?
¿Cómo se interpretan los códigos de salida de pre-commit
?
¿Cuando se aborta el commit
?
post-commit
:
#!/bin/sh REPOS="$1" REV="$2" /usr/share/doc/subversion-1.4.2/tools/hook-scripts/commit-email.pl "$REPOS" "$REV" \ --from 'aluXXX@ull.es' -r 'aluXXX@ull.es' 'aluXXX@gmail.com'¿Cómo se usa?
pre-commit
:
#!/bin/sh REPOS="$1" TXN="$2" perl -I/home/casiano/perl5/lib/perl5/site_perl/5.8.8/ \ /home/casiano/newrepository/hooks/commit-access-control.pl \ "$REPOS" "$TXN" /home/casiano/newrepository/hooks/commit-access-control.cfg || exit 1 # All checks passed, so allow the commit. exit 0
-bash-3.2$ cat commit-access-control.cfg [Make everything read-only for all users] match = .* access = read-only [project1 aluXXXX permissions] match = ^project1/trunk users = myfriend access = read-write [casiano permissions] match = .* users = casiano access = read-write
aluXXXX@nereida:/tmp$ sed -ne '/svn/,//p' /home/aluXXXX/.ssh/config Host svn HostName banot.etsii.ull.es user casiano IdentityFile /home/aluXXXX/.ssh/id_dsa_svn¿En que fichero va este fragmento?
pre-commit
,
¿Cómo podemos saber quien es el autor de la transacción?
$ svn-bisect --min 25000 --max 26000 start
$ svn-bisect bad
$ svn-bisect good
$ svn-bisect reset
$ svn-bisect --back reset
svn-bisect run ./mytest.sh
Casiano Rodríguez León