Download the PHP package console-helpers/svn-buddy without Composer

On this page you can find all versions of the php package console-helpers/svn-buddy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package svn-buddy

SVN-Buddy

CI codecov Scrutinizer Code Quality

Latest Stable Version Total Downloads License

SVN-Buddy is a command-line tool, that was created to drastically simplify Subversion-related development tasks performed on a daily basis from command line.

The Git users will also feel right at home, because used terminology (commands/options/arguments) was inspired by Git.

Usage

Almost each of commands described below accepts path argument to specify working copy path. This allows to work with several working copies without the need to cd to each of them.

The "config" (alias "cfg") command

This command allows to change configuration settings, that are used by other commands.

Some of the commands (merge, log, conflicts and aggregate) also use central data store (located in ~/.svn-buddy/config.json file) to store information about a working copy.

The association between setting values and a working copy is done using working copy url. Such approach allows to preserve setting values, when working copy is moved to different location on disk.

Arguments

Options

Examples

Feel free to add --global option to any of examples below to operate on global settings instead of working copy ones.

Shows values of all settings in current working copy grouped by a command:

Shows value of a merge.source-url setting:

Change value of a merge.source-url setting using interactive editor.

Delete a merge.source-url setting.

The "log" command

This command shows the log messages for a set of revisions.

What makes this command really shine (compared to svn log command) is:

The revision is considered merged only, when associated merge revision can be found. Unfortunately Subversion doesn't create merge revisions on direct path operations (e.g. replacing tags/stable with trunk) and therefore affected revisions won't be considered as merged when using this command.

Bugs, associated with each revision, are determined by parsing bugtraq:logregex Subversion property at the root folder of last changed ref in a project. The assumption is made, that Subversion project won't move to a different issue tracker and therefore value of bugtraq:logregex Subversion property is cached forever.

The working copy revision row is highlighted in bold in revision list to ease identifying of outdated working copies.

Arguments

Options

Configuration settings

Examples

By default ref (e.g. trunk) to display revisions for is detected from current working copy. To avoid need to keep different working copies around add --refs X (e.g. --refs branches/branch-name) to display revisions from specified ref(-s) of a project.

All --with-... options can be combined together to create more complex views.

Displays all revisions without filtering:

Displays all revisions without filtering, but limited by --max-count option value.

Displays 3, 7, 10, 34, 35 and 36 revisions. Any combination of revision(-s)/revision range(-s) can be used.

Displays revisions associated with JRA-10 and 6443 bugs.

Displays revisions retrieved from branches/5.2.x and releases/5.2.1 refs. The valid refs formats are:

Displays revisions retrieved from all refs in a project.

Displays revisions, where at least one path (directory or file) was deleted.

Displays revisions, where at least one affected path was a directory.

Displays revisions, where at least one affected path was a directory at least one path (directory or file) was deleted, but this isn't guaranteed to be the same path.

Displays only merge revisions.

Displays all, but merge revisions.

Displays only merged revisions.

Displays all, but merged revisions.

The log message won't be truncated in displayed revision list.

Displays detailed information about revisions:

Compact alternative to --with-details option where only totals about made changes in revisions are shown in separate column:

Displays refs, affected by each revision:

Shows how much paths in each revision can (but not necessarily will) cause conflicts when will be merged:

The log.merge-conflict-regexps configuration setting needs to be specified before Merge Oracle can be used. This can be done using following commands:

Once Interactive Editor opens enter regular expression (one per line) used to match a path (e.g. #/composer\\.lock$# matches to a composer.lock file in any sub-folder).

In above image there are 2 revisions and each of them contain 1 path (detected using configuration setting defined above) that might result in a conflict.

Displays changed paths in each revision, but also highlights potentially conflicting paths (from merge oracle) with red:

For each displayed revision also displays revision responsible for merging it (with merge revision ref):

The "merge" command

This command merges changes from another project or ref within same project into a working copy.

The merges performed outside of SVN-Buddy are detected automatically (thanks to svn mergeinfo being used internally).

Arguments

Options

Configuration settings

Examples

The --source-url option can be used with any of below examples to merge from that url instead of guessing it. The source url can be specified using:

The above command does following:

  1. only, when --source-url option isn't used
    • detects merge source url
    • when not detected ask to use --source-url option to specify it manually
    • when detected, then store it into merge.source-url configuration setting
  2. determines unmerged revisions between working copy and detected merge source url
  3. displays the results (no merge is performed):
    • number of unmerged revisions/bugs
    • status of previous merge operation
    • list of unmerged revisions

Does all of above and attempts to merge specified revisions into a working copy. As the merge progresses the output of svn merge command is shown back to user in real-time (no buffering).

Revisions are merged one by one, because:

The specified revisions to be merged are automatically sorted chronologically.

Only 2 outcomes from above command execution are possible:

The error screen shows:

The last bit can be quite helpful, when for example merging revision that changes a file, but not merging one before it, where this file was created.

After the merge conflict was solved the same merge command can be re-run without need to remove already merged revisions from --revisions option value.

Can't be used together with --bugs option.

Will merge all non-merged revisions.

Will merge all revisions, that are associated with JRA-4343 and 3453 bugs. This would be a major time saver in cases, when:

Can't be used together with --revisions option.

Will automatically run svn-buddy.phar commit command on successful merge. Overrides value from merge.auto-commit config setting.

Don't automatically run svn-buddy.phar commit command, when merge was successful. Overrides value from merge.auto-commit config setting.

Thanks to log command being used behind the scenes to display non-merged revisions it's possible to forward --with-full-message option to it to see non-truncated log message for each revision.

Thanks to log command being used behind the scenes to display non-merged revisions it's possible to forward --with-details option to it to see paths affected by each non-merged revision.

Thanks to log command being used behind the scenes to display non-merged revisions it's possible to forward --with-summary option to it to see totals for paths affected by each non-merged revision.

Will update working copy to the 55th revision before starting merge. Can be used to replay older merges for analytical purposes.

Will mark revisions, associated with JRA-123 bug as merged (no files will be changed).

Will mark 55th revision as merged (no files will be changed).

The "commit" (alias "ci") command

The command sends changes from your working copy to the repository.

Arguments

Options

Configuration settings

Examples

The command workflow is following:

  1. abort automatically, when
    • non-resolved conflicts are present
    • no paths are changed
  2. open an Interactive Editor for commit message entry
  3. commit message is automatically generated, from:
    • selected changelist name (when --cl option was used)
    • merged revision information using selected merge template (when this is a merge commit)
    • list of conflicted paths (if conflicts were present, but later were resolved)
  4. once user is done changing commit message a confirmation dialog is shown to ensure user really wants to perform commit
  5. when user agreed previously the commit is made

The auto-generated commit message looks like this (with group_by_revision merge template):

Description:

Same as above, but will also:

Same as above, but will use summary merge template instead of merge template configured for this working copy.

Perform a remote deployment after commit was performed or there is nothing to commit.

The "cleanup" command

Recursively clean up the working copy, removing locks, resuming unfinished operations, etc.

Arguments

Examples

The "revert" command

Restore pristine working copy file (undo most local edits).

Arguments

Examples

The "update" (alias "up") command

Bring changes from the repository into the working copy.

Arguments

Options

Examples

Updates a working copy.

Updates a working copy to 55th revision.

Updates a working copy, but doesn't checkout externals.

Perform a local deployment after update was performed or there is nothing to update.

The "conflicts" (alias "cf") command

Manages recorded conflicts in a working copy.

Arguments

Options

Configuration settings

Examples

Shows list of recorded conflicts like this:

Shows list of recorded conflicts like this:

Adds current conflicted paths (e.g. after merge or update) to the list of recorded paths.

Replaced list of recorded paths with current conflicted paths (e.g. after merge or update).

Forgets all recorded conflicted paths.

The "search" command

Searches for a revision, where text was added to a file or removed from it.

Arguments

Options

Examples

Finds where testMethod method was last seen in the folder/path.php file in the working copy.

Finds where testMethod method was last seen in the folder/path.php file in the working copy.

Finds where testMethod method was first added in the folder/path.php file in the working copy.

The "aggregate" command

Runs other command sequentially on every working copy on a path. Almost all other commands can be used in such a manner.

Arguments

Own options

Aggregated command options

Configuration settings

Examples

Adds some-path path (can be relative or absolute) to ignored path list.

Removes some-path path (can be relative or absolute) from ignored path list.

Shows list of ignored paths.

The "project" command

Changes and displays project configuration.

Arguments

Options

Examples

Pulls bugtraq:logregex SVN property from recently modified trunk/branch/tag and stores into project configuration.

Displays project meta information in following format:

The "reparse" command

CReparses given revision.

Arguments

Options

Examples

Re-reads and reparses 12345 revision information.

The "self-update" command

Updates application to most recent version. Following update channels are available:

Special options exist (see examples below) to switch between update channels.

Options

Examples

Updates to most recent version on current update channel. By default update would happen from stable channel.

In case if update was done previously allows to undo the update.

Change current update channel to stable and immediately performs the update.

Change current update channel to snapshot and immediately performs the update.

Change current update channel to preview and immediately performs the update.

The "list" command

Displays available commands. The version of Subversion binary is also displayed next to application version.

Examples

The "changelog" command

Displays changes included in the current SVN-Buddy release.

Examples

The "deploy" command

This command deploys changes to remote/local server.

Arguments

Options

Configuration settings

Examples

Will perform remote deployment.

Will perform local deployment.

The "help" command

Displays help for a command.

Installation

  1. download a stable release (preferably to the folder in PATH)
  2. setup auto-completion by placing eval $(/path/to/svn-buddy.phar _completion --generate-hook -p svn-buddy.phar) in ~/.bashrc (Bash v4.0+ required) and reopening a Terminal window
  3. (optional) switch to the snapshot release channel to get weekly updates by running the /path/to/svn-buddy.phar self-update --snapshot command
  4. (optional) switch to the preview release channel to get daily updates by running the /path/to/svn-buddy.phar self-update --preview command

How to upgrade Bash on macOS: https://www.shell-tips.com/mac/upgrade-bash/ .

Requirements

Contributing

See CONTRIBUTING file.

License

SVN-Buddy is released under the BSD-3-Clause License. See the bundled LICENSE file for details.


All versions of svn-buddy with dependencies

PHP Build Version
Package Version
Requires php Version ^5.6|>=7.0.8
symfony/process Version ^3.4 || ^4.0 || ^5.0
console-helpers/console-kit Version ^0.3@dev
aura/sql Version ^3.0 || ^4.0 || ^5.0
padraic/phar-updater Version dev-use-curl
padraic/humbug_get_contents Version ^1.0
console-helpers/db-migration Version ^0.1.0
ext-simplexml Version *
ext-zlib Version *
ext-json Version *
ext-pdo Version *
fiasco/symfony-console-style-markdown Version ^1.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package console-helpers/svn-buddy contains the following files

Loading the files please wait ....