kvm 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. data/.gitignore +3 -0
  2. data/.rvmrc +1 -0
  3. data/AGPL-3.0 +661 -0
  4. data/Gemfile +8 -0
  5. data/Gemfile.lock +32 -0
  6. data/LICENSE +23 -0
  7. data/README.md +73 -0
  8. data/Rakefile +48 -0
  9. data/bin/kvm +6 -0
  10. data/kvm.gemspec +28 -0
  11. data/lib/kvm.rb +286 -0
  12. data/lib/kvm/archive.rb +56 -0
  13. data/lib/kvm/artifact.rb +28 -0
  14. data/lib/kvm/db/jdbc_adapter.rb +71 -0
  15. data/lib/kvm/db/oracle.rb +23 -0
  16. data/lib/kvm/db/types.rb +11 -0
  17. data/lib/kvm/impex.rb +109 -0
  18. data/lib/kvm/log.rb +7 -0
  19. data/lib/kvm/resource.rb +72 -0
  20. data/lib/kvm/rice_release.rb +79 -0
  21. data/lib/kvm/rice_release_generated_dataset.rb +68 -0
  22. data/lib/kvm/source.rb +33 -0
  23. data/lib/kvm/subversion.rb +52 -0
  24. data/lib/kvm/version.rb +3 -0
  25. data/lib/kvm/wallet.rb +64 -0
  26. data/support/ant/INSTALL +2 -0
  27. data/support/ant/KEYS +1398 -0
  28. data/support/ant/LICENSE +272 -0
  29. data/support/ant/NOTICE +6 -0
  30. data/support/ant/README +97 -0
  31. data/support/ant/WHATSNEW +5467 -0
  32. data/support/ant/bin/ant +335 -0
  33. data/support/ant/bin/ant.bat +218 -0
  34. data/support/ant/bin/ant.cmd +93 -0
  35. data/support/ant/bin/antRun +24 -0
  36. data/support/ant/bin/antRun.bat +50 -0
  37. data/support/ant/bin/antRun.pl +66 -0
  38. data/support/ant/bin/antenv.cmd +98 -0
  39. data/support/ant/bin/complete-ant-cmd.pl +114 -0
  40. data/support/ant/bin/envset.cmd +131 -0
  41. data/support/ant/bin/lcp.bat +31 -0
  42. data/support/ant/bin/runant.pl +153 -0
  43. data/support/ant/bin/runant.py +102 -0
  44. data/support/ant/bin/runrc.cmd +60 -0
  45. data/support/ant/etc/ant-bootstrap.jar +0 -0
  46. data/support/ant/etc/changelog.xsl +148 -0
  47. data/support/ant/etc/checkstyle/checkstyle-frames.xsl +299 -0
  48. data/support/ant/etc/checkstyle/checkstyle-text.xsl +34 -0
  49. data/support/ant/etc/checkstyle/checkstyle-xdoc.xsl +130 -0
  50. data/support/ant/etc/coverage-frames.xsl +489 -0
  51. data/support/ant/etc/jdepend-frames.xsl +487 -0
  52. data/support/ant/etc/jdepend.xsl +276 -0
  53. data/support/ant/etc/junit-frames-xalan1.xsl +733 -0
  54. data/support/ant/etc/junit-frames.xsl +902 -0
  55. data/support/ant/etc/junit-noframes.xsl +478 -0
  56. data/support/ant/etc/log.xsl +203 -0
  57. data/support/ant/etc/maudit-frames.xsl +503 -0
  58. data/support/ant/etc/mmetrics-frames.xsl +1026 -0
  59. data/support/ant/etc/tagdiff.xsl +179 -0
  60. data/support/ant/fetch.xml +343 -0
  61. data/support/ant/get-m2.xml +121 -0
  62. data/support/ant/lib/README +3 -0
  63. data/support/ant/lib/ant-antlr.jar +0 -0
  64. data/support/ant/lib/ant-antlr.pom +76 -0
  65. data/support/ant/lib/ant-apache-bcel.jar +0 -0
  66. data/support/ant/lib/ant-apache-bcel.pom +72 -0
  67. data/support/ant/lib/ant-apache-bsf.jar +0 -0
  68. data/support/ant/lib/ant-apache-bsf.pom +75 -0
  69. data/support/ant/lib/ant-apache-log4j.jar +0 -0
  70. data/support/ant/lib/ant-apache-log4j.pom +70 -0
  71. data/support/ant/lib/ant-apache-oro.jar +0 -0
  72. data/support/ant/lib/ant-apache-oro.pom +75 -0
  73. data/support/ant/lib/ant-apache-regexp.jar +0 -0
  74. data/support/ant/lib/ant-apache-regexp.pom +71 -0
  75. data/support/ant/lib/ant-apache-resolver.jar +0 -0
  76. data/support/ant/lib/ant-apache-resolver.pom +70 -0
  77. data/support/ant/lib/ant-apache-xalan2.jar +0 -0
  78. data/support/ant/lib/ant-apache-xalan2.pom +95 -0
  79. data/support/ant/lib/ant-commons-logging.jar +0 -0
  80. data/support/ant/lib/ant-commons-logging.pom +71 -0
  81. data/support/ant/lib/ant-commons-net.jar +0 -0
  82. data/support/ant/lib/ant-commons-net.pom +76 -0
  83. data/support/ant/lib/ant-jai.jar +0 -0
  84. data/support/ant/lib/ant-jai.pom +85 -0
  85. data/support/ant/lib/ant-javamail.jar +0 -0
  86. data/support/ant/lib/ant-javamail.pom +79 -0
  87. data/support/ant/lib/ant-jdepend.jar +0 -0
  88. data/support/ant/lib/ant-jdepend.pom +73 -0
  89. data/support/ant/lib/ant-jmf.jar +0 -0
  90. data/support/ant/lib/ant-jmf.pom +66 -0
  91. data/support/ant/lib/ant-jsch.jar +0 -0
  92. data/support/ant/lib/ant-jsch.pom +75 -0
  93. data/support/ant/lib/ant-junit.jar +0 -0
  94. data/support/ant/lib/ant-junit.pom +101 -0
  95. data/support/ant/lib/ant-junit4.jar +0 -0
  96. data/support/ant/lib/ant-junit4.pom +71 -0
  97. data/support/ant/lib/ant-launcher.jar +0 -0
  98. data/support/ant/lib/ant-launcher.pom +58 -0
  99. data/support/ant/lib/ant-netrexx.jar +0 -0
  100. data/support/ant/lib/ant-netrexx.pom +99 -0
  101. data/support/ant/lib/ant-parent.pom +120 -0
  102. data/support/ant/lib/ant-swing.jar +0 -0
  103. data/support/ant/lib/ant-swing.pom +67 -0
  104. data/support/ant/lib/ant-testutil.jar +0 -0
  105. data/support/ant/lib/ant-testutil.pom +75 -0
  106. data/support/ant/lib/ant.jar +0 -0
  107. data/support/ant/lib/ant.pom +222 -0
  108. data/support/ant/lib/libraries.properties +65 -0
  109. data/test/data/files/rice-0.0.0.0-bin.tar.gz +0 -0
  110. data/test/data/svn/README.txt +5 -0
  111. data/test/data/svn/conf/authz +32 -0
  112. data/test/data/svn/conf/passwd +8 -0
  113. data/test/data/svn/conf/svnserve.conf +47 -0
  114. data/test/data/svn/db/current +1 -0
  115. data/test/data/svn/db/format +2 -0
  116. data/test/data/svn/db/fs-type +1 -0
  117. data/test/data/svn/db/fsfs.conf +37 -0
  118. data/test/data/svn/db/min-unpacked-rev +1 -0
  119. data/test/data/svn/db/rep-cache.db +0 -0
  120. data/test/data/svn/db/revprops/0/0 +5 -0
  121. data/test/data/svn/db/revprops/0/1 +13 -0
  122. data/test/data/svn/db/revs/0/0 +11 -0
  123. data/test/data/svn/db/revs/0/1 +0 -0
  124. data/test/data/svn/db/txn-current +1 -0
  125. data/test/data/svn/db/txn-current-lock +0 -0
  126. data/test/data/svn/db/uuid +1 -0
  127. data/test/data/svn/db/write-lock +0 -0
  128. data/test/data/svn/format +1 -0
  129. data/test/data/svn/hooks/post-commit.tmpl +50 -0
  130. data/test/data/svn/hooks/post-lock.tmpl +44 -0
  131. data/test/data/svn/hooks/post-revprop-change.tmpl +56 -0
  132. data/test/data/svn/hooks/post-unlock.tmpl +42 -0
  133. data/test/data/svn/hooks/pre-commit.tmpl +81 -0
  134. data/test/data/svn/hooks/pre-lock.tmpl +71 -0
  135. data/test/data/svn/hooks/pre-revprop-change.tmpl +66 -0
  136. data/test/data/svn/hooks/pre-unlock.tmpl +63 -0
  137. data/test/data/svn/hooks/start-commit.tmpl +65 -0
  138. data/test/data/svn/locks/db-logs.lock +3 -0
  139. data/test/data/svn/locks/db.lock +3 -0
  140. data/test/helper.rb +146 -0
  141. data/test/int_test_generate_sql.rb +58 -0
  142. data/test/test_archive.rb +35 -0
  143. data/test/test_generate_sql.rb +0 -0
  144. data/test/test_rice_release.rb +61 -0
  145. data/test/test_rice_release_generated_dataset.rb +12 -0
  146. data/test/test_source.rb +31 -0
  147. data/test/test_subversion.rb +20 -0
  148. metadata +298 -0
@@ -0,0 +1,65 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright ownership.
4
+ # The ASF licenses this file to You under the Apache License, Version 2.0
5
+ # (the "License"); you may not use this file except in compliance with
6
+ # the License. You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ #this file declares the libraries for use in
17
+ #a given release of the components
18
+
19
+ #if you change this, change the checksum to match
20
+ m2.version=2.0.4
21
+ m2.url=http://ibiblio.org/maven2/
22
+ m2.artifact-name=maven-artifact-ant
23
+ m2.jar.name=${m2.artifact-name}-${m2.version}-dep.jar
24
+ #this is the URL of the antlib library, that is pulled down for everything else.
25
+ m2.antlib.url=${m2.url}/org/apache/maven/${m2.artifact-name}/${m2.version}/${m2.jar.name}
26
+ #this is the sha1 checksum of the artifact
27
+ m2.sha1.checksum=4e7ddfdb91600e9b59bb965ff8eef2f06015df50
28
+
29
+ # Repository to use by default for fetching dependencies.
30
+ m2.repo=http://repo1.maven.org/maven2/
31
+
32
+ #versions of different libraries. Please keep in alphabetical order, except
33
+ #when a specific dependency forces them to be out-of-order
34
+ antlr.version=2.7.7
35
+ bcel.version=5.1
36
+ bsf.version=2.4.0
37
+ bsh.version=2.0b4
38
+ bsh-core.version=${bsh.version}
39
+ commons-net.version=1.4.1
40
+ commons-logging.version=1.1
41
+ commons-logging-api.version=${commons-logging.version}
42
+ jai-core.version=1.1.3
43
+ jai-codec.version=1.1.3
44
+ jasper-compiler.version=4.1.36
45
+ jasper-runtime.version=${jasper-compiler.version}
46
+ jdepend.version=2.9.1
47
+ jruby.version=0.9.8
48
+ junit.version=4.8.1
49
+ jsch.version=0.1.42
50
+ jython.version=2.1
51
+ #log4j 1.2.15 requires JMS and a few other Sun jars that are not in the m2 repo
52
+ log4j.version=1.2.14
53
+ #js is the javascript implementation of the rhino project
54
+ #17R1 is compiled with Java5 so we can't use the jar when building with JDK 1.4
55
+ js.version=1.6R7
56
+ oro.version=2.0.8
57
+ regexp.version=1.3
58
+ servlet-api.version=2.3
59
+ which.version=1.0
60
+ xalan.version=2.7.1
61
+ xml-resolver.version=1.2
62
+ mail.version=1.4
63
+ #paired
64
+ jacl.version=1.2.6
65
+ tcljava.version=${jacl.version}
@@ -0,0 +1,5 @@
1
+ This is a Subversion repository; use the 'svnadmin' tool to examine
2
+ it. Do not add, delete, or modify files here unless you know how
3
+ to avoid corrupting the repository.
4
+
5
+ Visit http://subversion.tigris.org/ for more information.
@@ -0,0 +1,32 @@
1
+ ### This file is an example authorization file for svnserve.
2
+ ### Its format is identical to that of mod_authz_svn authorization
3
+ ### files.
4
+ ### As shown below each section defines authorizations for the path and
5
+ ### (optional) repository specified by the section name.
6
+ ### The authorizations follow. An authorization line can refer to:
7
+ ### - a single user,
8
+ ### - a group of users defined in a special [groups] section,
9
+ ### - an alias defined in a special [aliases] section,
10
+ ### - all authenticated users, using the '$authenticated' token,
11
+ ### - only anonymous users, using the '$anonymous' token,
12
+ ### - anyone, using the '*' wildcard.
13
+ ###
14
+ ### A match can be inverted by prefixing the rule with '~'. Rules can
15
+ ### grant read ('r') access, read-write ('rw') access, or no access
16
+ ### ('').
17
+
18
+ [aliases]
19
+ # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
20
+
21
+ [groups]
22
+ # harry_and_sally = harry,sally
23
+ # harry_sally_and_joe = harry,sally,&joe
24
+
25
+ # [/foo/bar]
26
+ # harry = rw
27
+ # &joe = r
28
+ # * =
29
+
30
+ # [repository:/baz/fuz]
31
+ # @harry_and_sally = rw
32
+ # * = r
@@ -0,0 +1,8 @@
1
+ ### This file is an example password file for svnserve.
2
+ ### Its format is similar to that of svnserve.conf. As shown in the
3
+ ### example below it contains one section labelled [users].
4
+ ### The name and password for each user follow, one account per line.
5
+
6
+ [users]
7
+ # harry = harryssecret
8
+ # sally = sallyssecret
@@ -0,0 +1,47 @@
1
+ ### This file controls the configuration of the svnserve daemon, if you
2
+ ### use it to allow access to this repository. (If you only allow
3
+ ### access through http: and/or file: URLs, then this file is
4
+ ### irrelevant.)
5
+
6
+ ### Visit http://subversion.tigris.org/ for more information.
7
+
8
+ [general]
9
+ ### These options control access to the repository for unauthenticated
10
+ ### and authenticated users. Valid values are "write", "read",
11
+ ### and "none". The sample settings below are the defaults.
12
+ # anon-access = read
13
+ # auth-access = write
14
+ ### The password-db option controls the location of the password
15
+ ### database file. Unless you specify a path starting with a /,
16
+ ### the file's location is relative to the directory containing
17
+ ### this configuration file.
18
+ ### If SASL is enabled (see below), this file will NOT be used.
19
+ ### Uncomment the line below to use the default password file.
20
+ # password-db = passwd
21
+ ### The authz-db option controls the location of the authorization
22
+ ### rules for path-based access control. Unless you specify a path
23
+ ### starting with a /, the file's location is relative to the the
24
+ ### directory containing this file. If you don't specify an
25
+ ### authz-db, no path-based access control is done.
26
+ ### Uncomment the line below to use the default authorization file.
27
+ # authz-db = authz
28
+ ### This option specifies the authentication realm of the repository.
29
+ ### If two repositories have the same authentication realm, they should
30
+ ### have the same password database, and vice versa. The default realm
31
+ ### is repository's uuid.
32
+ # realm = My First Repository
33
+
34
+ [sasl]
35
+ ### This option specifies whether you want to use the Cyrus SASL
36
+ ### library for authentication. Default is false.
37
+ ### This section will be ignored if svnserve is not built with Cyrus
38
+ ### SASL support; to check, run 'svnserve --version' and look for a line
39
+ ### reading 'Cyrus SASL authentication is available.'
40
+ # use-sasl = true
41
+ ### These options specify the desired strength of the security layer
42
+ ### that you want SASL to provide. 0 means no encryption, 1 means
43
+ ### integrity-checking only, values larger than 1 are correlated
44
+ ### to the effective key length for encryption (e.g. 128 means 128-bit
45
+ ### encryption). The values below are the defaults.
46
+ # min-encryption = 0
47
+ # max-encryption = 256
@@ -0,0 +1 @@
1
+ 1
@@ -0,0 +1,2 @@
1
+ 4
2
+ layout sharded 1000
@@ -0,0 +1 @@
1
+ fsfs
@@ -0,0 +1,37 @@
1
+ ### This file controls the configuration of the FSFS filesystem.
2
+
3
+ [memcached-servers]
4
+ ### These options name memcached servers used to cache internal FSFS
5
+ ### data. See http://www.danga.com/memcached/ for more information on
6
+ ### memcached. To use memcached with FSFS, run one or more memcached
7
+ ### servers, and specify each of them as an option like so:
8
+ # first-server = 127.0.0.1:11211
9
+ # remote-memcached = mymemcached.corp.example.com:11212
10
+ ### The option name is ignored; the value is of the form HOST:PORT.
11
+ ### memcached servers can be shared between multiple repositories;
12
+ ### however, if you do this, you *must* ensure that repositories have
13
+ ### distinct UUIDs and paths, or else cached data from one repository
14
+ ### might be used by another accidentally. Note also that memcached has
15
+ ### no authentication for reads or writes, so you must ensure that your
16
+ ### memcached servers are only accessible by trusted users.
17
+
18
+ [caches]
19
+ ### When a cache-related error occurs, normally Subversion ignores it
20
+ ### and continues, logging an error if the server is appropriately
21
+ ### configured (and ignoring it with file:// access). To make
22
+ ### Subversion never ignore cache errors, uncomment this line.
23
+ # fail-stop = true
24
+
25
+ [rep-sharing]
26
+ ### To conserve space, the filesystem can optionally avoid storing
27
+ ### duplicate representations. This comes at a slight cost in performace,
28
+ ### as maintaining a database of shared representations can increase
29
+ ### commit times. The space savings are dependent upon the size of the
30
+ ### repository, the number of objects it contains and the amount of
31
+ ### duplication between them, usually a function of the branching and
32
+ ### merging process.
33
+ ###
34
+ ### The following parameter enables rep-sharing in the repository. It can
35
+ ### be switched on and off at will, but for best space-saving results
36
+ ### should be enabled consistently over the life of the repository.
37
+ # enable-rep-sharing = false
@@ -0,0 +1,5 @@
1
+ K 8
2
+ svn:date
3
+ V 27
4
+ 2011-05-28T19:06:52.004336Z
5
+ END
@@ -0,0 +1,13 @@
1
+ K 10
2
+ svn:author
3
+ V 5
4
+ aaron
5
+ K 8
6
+ svn:date
7
+ V 27
8
+ 2011-05-28T19:26:42.427224Z
9
+ K 7
10
+ svn:log
11
+ V 19
12
+ adding sample files
13
+ END
@@ -0,0 +1,11 @@
1
+ PLAIN
2
+ END
3
+ ENDREP
4
+ id: 0.0.r0/17
5
+ type: dir
6
+ count: 0
7
+ text: 0 0 4 4 2d2977d1c96f487abe4a1e202dd03b4e
8
+ cpath: /
9
+
10
+
11
+ 17 107
Binary file
@@ -0,0 +1 @@
1
+ 1
File without changes
@@ -0,0 +1 @@
1
+ 42565b0b-6c75-427d-866e-cc8448e206ff
File without changes
@@ -0,0 +1 @@
1
+ 5
@@ -0,0 +1,50 @@
1
+ #!/bin/sh
2
+
3
+ # POST-COMMIT HOOK
4
+ #
5
+ # The post-commit hook is invoked after a commit. Subversion runs
6
+ # this hook by invoking a program (script, executable, binary, etc.)
7
+ # named 'post-commit' (for which this file is a template) with the
8
+ # following ordered arguments:
9
+ #
10
+ # [1] REPOS-PATH (the path to this repository)
11
+ # [2] REV (the number of the revision just committed)
12
+ #
13
+ # The default working directory for the invocation is undefined, so
14
+ # the program should set one explicitly if it cares.
15
+ #
16
+ # Because the commit has already completed and cannot be undone,
17
+ # the exit code of the hook program is ignored. The hook program
18
+ # can use the 'svnlook' utility to help it examine the
19
+ # newly-committed tree.
20
+ #
21
+ # On a Unix system, the normal procedure is to have 'post-commit'
22
+ # invoke other programs to do the real work, though it may do the
23
+ # work itself too.
24
+ #
25
+ # Note that 'post-commit' must be executable by the user(s) who will
26
+ # invoke it (typically the user httpd runs as), and that user must
27
+ # have filesystem-level permission to access the repository.
28
+ #
29
+ # On a Windows system, you should name the hook program
30
+ # 'post-commit.bat' or 'post-commit.exe',
31
+ # but the basic idea is the same.
32
+ #
33
+ # The hook program typically does not inherit the environment of
34
+ # its parent process. For example, a common problem is for the
35
+ # PATH environment variable to not be set to its usual value, so
36
+ # that subprograms fail to launch unless invoked via absolute path.
37
+ # If you're having unexpected problems with a hook program, the
38
+ # culprit may be unusual (or missing) environment variables.
39
+ #
40
+ # Here is an example hook script, for a Unix /bin/sh interpreter.
41
+ # For more examples and pre-written hooks, see those in
42
+ # the Subversion repository at
43
+ # http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
44
+ # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
45
+
46
+
47
+ REPOS="$1"
48
+ REV="$2"
49
+
50
+ mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
@@ -0,0 +1,44 @@
1
+ #!/bin/sh
2
+
3
+ # POST-LOCK HOOK
4
+ #
5
+ # The post-lock hook is run after a path is locked. Subversion runs
6
+ # this hook by invoking a program (script, executable, binary, etc.)
7
+ # named 'post-lock' (for which this file is a template) with the
8
+ # following ordered arguments:
9
+ #
10
+ # [1] REPOS-PATH (the path to this repository)
11
+ # [2] USER (the user who created the lock)
12
+ #
13
+ # The paths that were just locked are passed to the hook via STDIN (as
14
+ # of Subversion 1.2, only one path is passed per invocation, but the
15
+ # plan is to pass all locked paths at once, so the hook program
16
+ # should be written accordingly).
17
+ #
18
+ # The default working directory for the invocation is undefined, so
19
+ # the program should set one explicitly if it cares.
20
+ #
21
+ # Because the lock has already been created and cannot be undone,
22
+ # the exit code of the hook program is ignored. The hook program
23
+ # can use the 'svnlook' utility to help it examine the
24
+ # newly-created lock.
25
+ #
26
+ # On a Unix system, the normal procedure is to have 'post-lock'
27
+ # invoke other programs to do the real work, though it may do the
28
+ # work itself too.
29
+ #
30
+ # Note that 'post-lock' must be executable by the user(s) who will
31
+ # invoke it (typically the user httpd runs as), and that user must
32
+ # have filesystem-level permission to access the repository.
33
+ #
34
+ # On a Windows system, you should name the hook program
35
+ # 'post-lock.bat' or 'post-lock.exe',
36
+ # but the basic idea is the same.
37
+ #
38
+ # Here is an example hook script, for a Unix /bin/sh interpreter:
39
+
40
+ REPOS="$1"
41
+ USER="$2"
42
+
43
+ # Send email to interested parties, let them know a lock was created:
44
+ mailer.py lock "$REPOS" "$USER" /path/to/mailer.conf
@@ -0,0 +1,56 @@
1
+ #!/bin/sh
2
+
3
+ # POST-REVPROP-CHANGE HOOK
4
+ #
5
+ # The post-revprop-change hook is invoked after a revision property
6
+ # has been added, modified or deleted. Subversion runs this hook by
7
+ # invoking a program (script, executable, binary, etc.) named
8
+ # 'post-revprop-change' (for which this file is a template), with the
9
+ # following ordered arguments:
10
+ #
11
+ # [1] REPOS-PATH (the path to this repository)
12
+ # [2] REV (the revision that was tweaked)
13
+ # [3] USER (the username of the person tweaking the property)
14
+ # [4] PROPNAME (the property that was changed)
15
+ # [5] ACTION (the property was 'A'dded, 'M'odified, or 'D'eleted)
16
+ #
17
+ # [STDIN] PROPVAL ** the old property value is passed via STDIN.
18
+ #
19
+ # Because the propchange has already completed and cannot be undone,
20
+ # the exit code of the hook program is ignored. The hook program
21
+ # can use the 'svnlook' utility to help it examine the
22
+ # new property value.
23
+ #
24
+ # On a Unix system, the normal procedure is to have 'post-revprop-change'
25
+ # invoke other programs to do the real work, though it may do the
26
+ # work itself too.
27
+ #
28
+ # Note that 'post-revprop-change' must be executable by the user(s) who will
29
+ # invoke it (typically the user httpd runs as), and that user must
30
+ # have filesystem-level permission to access the repository.
31
+ #
32
+ # On a Windows system, you should name the hook program
33
+ # 'post-revprop-change.bat' or 'post-revprop-change.exe',
34
+ # but the basic idea is the same.
35
+ #
36
+ # The hook program typically does not inherit the environment of
37
+ # its parent process. For example, a common problem is for the
38
+ # PATH environment variable to not be set to its usual value, so
39
+ # that subprograms fail to launch unless invoked via absolute path.
40
+ # If you're having unexpected problems with a hook program, the
41
+ # culprit may be unusual (or missing) environment variables.
42
+ #
43
+ # Here is an example hook script, for a Unix /bin/sh interpreter.
44
+ # For more examples and pre-written hooks, see those in
45
+ # the Subversion repository at
46
+ # http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
47
+ # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
48
+
49
+
50
+ REPOS="$1"
51
+ REV="$2"
52
+ USER="$3"
53
+ PROPNAME="$4"
54
+ ACTION="$5"
55
+
56
+ mailer.py propchange2 "$REPOS" "$REV" "$USER" "$PROPNAME" "$ACTION" /path/to/mailer.conf
@@ -0,0 +1,42 @@
1
+ #!/bin/sh
2
+
3
+ # POST-UNLOCK HOOK
4
+ #
5
+ # The post-unlock hook runs after a path is unlocked. Subversion runs
6
+ # this hook by invoking a program (script, executable, binary, etc.)
7
+ # named 'post-unlock' (for which this file is a template) with the
8
+ # following ordered arguments:
9
+ #
10
+ # [1] REPOS-PATH (the path to this repository)
11
+ # [2] USER (the user who destroyed the lock)
12
+ #
13
+ # The paths that were just unlocked are passed to the hook via STDIN
14
+ # (as of Subversion 1.2, only one path is passed per invocation, but
15
+ # the plan is to pass all unlocked paths at once, so the hook program
16
+ # should be written accordingly).
17
+ #
18
+ # The default working directory for the invocation is undefined, so
19
+ # the program should set one explicitly if it cares.
20
+ #
21
+ # Because the lock has already been destroyed and cannot be undone,
22
+ # the exit code of the hook program is ignored.
23
+ #
24
+ # On a Unix system, the normal procedure is to have 'post-unlock'
25
+ # invoke other programs to do the real work, though it may do the
26
+ # work itself too.
27
+ #
28
+ # Note that 'post-unlock' must be executable by the user(s) who will
29
+ # invoke it (typically the user httpd runs as), and that user must
30
+ # have filesystem-level permission to access the repository.
31
+ #
32
+ # On a Windows system, you should name the hook program
33
+ # 'post-unlock.bat' or 'post-unlock.exe',
34
+ # but the basic idea is the same.
35
+ #
36
+ # Here is an example hook script, for a Unix /bin/sh interpreter:
37
+
38
+ REPOS="$1"
39
+ USER="$2"
40
+
41
+ # Send email to interested parties, let them know a lock was removed:
42
+ mailer.py unlock "$REPOS" "$USER" /path/to/mailer.conf