---
name: "Rex::Commands::SCM"
section: "3pm"
platform: "linux"
package: "rex"
version: "1.16.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rex::Commands::SCM"
---

# Rex::Commands::SCM(3pm)

Sourcecontrol for Subversion and Git.

## NAME

Rex::Commands::SCM - Sourcecontrol for Subversion and Git.

## DESCRIPTION

With this module you can checkout subversion and git repositories.

Version \<= 1.0: All these functions will not be reported.

All these functions are not idempotent.

## SYNOPSIS

```
 use Rex::Commands::SCM;
 set repository => "myrepo",
    url => 'git@foo.bar:myrepo.git';
 set repository => "myrepo2",
    url      => "https://foo.bar/myrepo",
    type     => "subversion",
    username => "myuser",
    password => "mypass";
 task "checkout", sub {
   checkout "myrepo";
   checkout "myrepo",
     path => "webapp";
   checkout "myrepo",
     path   => "webapp",
     branch => 1.6;    # branch only for git
   # For Git only, will replay any local commits on top of pulled commits
   checkout "myrepo",
     path   => "script_dir",
     rebase => TRUE;
   checkout "myrepo2";
 };
```

## EXPORTED FUNCTIONS

### checkout($name, %data);

With this function you can checkout a repository defined with *set repository*. See Synopsis.
