gwynne Sun, 26 Jul 2009 04:00:55 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=286349
Log: minor whitespace quirk in debug output fixed. More importantly, the creation of tags/ directories is now allowed subject to location-in-repo restrictions Changed paths: U SVNROOT/hook-common.inc.php U SVNROOT/pre-commit Modified: SVNROOT/hook-common.inc.php =================================================================== --- SVNROOT/hook-common.inc.php 2009-07-26 03:46:22 UTC (rev 286348) +++ SVNROOT/hook-common.inc.php 2009-07-26 04:00:55 UTC (rev 286349) @@ -75,7 +75,7 @@ } $final_paths[$actual_path] = $path_actions; } - debug(print_r($final_paths, 1)); + debug(trim(print_r($final_paths, 1))); return $final_paths; } Modified: SVNROOT/pre-commit =================================================================== --- SVNROOT/pre-commit 2009-07-26 03:46:22 UTC (rev 286348) +++ SVNROOT/pre-commit 2009-07-26 04:00:55 UTC (rev 286349) @@ -35,19 +35,39 @@ fail("Commits to archived modules are not allowed.\n"); } - // path contains "/tags/" AND - // path was not added OR - // path was not copied OR - // path is not a directory OR - // path's immediate ancestor is not tags/ - if (strpos($changed_path, '/tags/') !== FALSE && - (!in_array('added', $path_actions) || - !in_array('copied', $path_actions) || - substr($changed_path, -1) !== '/' || - substr(dirname($changed_path), -5) !== '/tags')) - { - fail("Committing to a tag is not allowed.\n"); + // path contains "/tags/" + if (($tags_loc = strpos($changed_path, '/tags/')) !== FALSE) { + $allowed_tag = FALSE; + + // path was added AND + // path was copied AND + // path is a directory AND + // path's immediate ancestor is tags/ + if (in_array('added', $path_actions) && + in_array('copied', $path_actions) && + substr($changed_path, -1) === '/' && + substr(dirname($changed_path), -5) === '/tags') + { + debug("Tag {$changed_path} passes checks for tag creation."); + $allowed_tag = TRUE; + } + // path was added AND + // path does not contain any other structure directories AND + // the first occurrence of /tags/ in path is at the end + else if (in_array('added', $path_actions) && + strpos($changed_path, "/branches/") === FALSE && + strpos($changed_path, "/trunk/") === FALSE && + $tags_loc === strlen($changed_path) - 6) + { + debug("Path {$changed_path} passes checks for tags directory creation."); + $allowed_tag = TRUE; + } + + if (!$allowed_tag) { + fail("Committing to a tag is not allowed.\n"); + } } + } // -----------------------------------------------------------------------------------------------------------------------------
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php