Skip to main content

A tool for managing git repositories inside of Perforce depots

Project description

p4submodule

A tool for managing git repositories inside of Perforce depots.

This tool was built for managing Unreal Engine plugins that are distributed via GitHub, but it may have other uses as well.

Installation

  1. Ensure you have python3 & pipx installed
  2. Run pipx install p4submodule
  3. Tada!

LFS Repositories

If the repository you're cloning or updating uses git LFS, you'll need to run some additional commands immediately after a create or update.

  1. git lfs fetch: Caches the LFS data on your local machine.
  2. git lfs checkout: Replaces the contents of the files with the cached LFS data.

Note: If you do not have git LFS installed on your local machine, run git lfs install first.

CLI Documentation

p4submodule

A tool for managing git repositories inside of Perforce depots.

Usage: p4submodule [OPTIONS] COMMAND [ARGS]...

--p4-port TEXT: P4 server address to use intead of inferring from p4 set

--p4-user TEXT: P4 username to use intead of inferring from p4 set

--p4-client TEXT: P4 workspace to use intead of inferring from p4 set

create

Creates a new submodule.

Usage: p4submodule create [OPTIONS] [PATH TO submodule.toml]

--name NAME: (defaults to the checkout directory name) A name used to refer to the submodule

--remote URL: The URL for the remote repository to track

--tracking BRANCH: The branch to track from the remote

--path PATH: The optional relative path from the config file to the checkout directory

--no-sync: Create the submodule config file, but don't clone it

-c, --changelist CHANGELIST: (Defaults to creating a new CL) The P4 changelist to place changes in

update

Fetch & update submodules in config to the latest revision of their tracking branches.

This command will do it's best to preserve your local/p4 changes to directories by commiting them to the local git repository, fetching the remote, and rebasing your change on top of the newest tracking version, but it is possible that conflicts may arise.

Usage: p4submodule update [OPTIONS] [CONFIGS]...

-m, --message TEXT (Defaults to [p4submodule] updating repo): The commit message to use when converting local changes to the target repository type

-c, --changelist CHANGELIST: (Defaults to creating a new CL) The P4 changelist to place changes in

submodule.toml Format

Editing this file by hand should not be required, as all modifications should be covered by the above commands.

submodule.[NAME] sections (optional) (NAME default: file directory name)

You may use this section to optionally define multiple submodules in the same file. Example:

[Submodule.ModuleA]
...
[Submodule.ModuleB]
...

path (optional) (default: file directory)

You may use this field to specify the path to the git repository checkout root.

remote

The path to the git remote to checkout/clone from.

tracking

The remote branch to track when updating.

current_ref

The OID of the git commit currently in use by the submodule.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

p4submodule-1.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

p4submodule-1.1.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file p4submodule-1.1.0.tar.gz.

File metadata

  • Download URL: p4submodule-1.1.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for p4submodule-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0e6689557648be5d9c2d65cd5244620eb37926beafbeabbdd60db01053e4cd63
MD5 d01560ab13093203cf2d7834489492f2
BLAKE2b-256 745266b4d6b864319e8927c11a092b91badc0be69cb3a14bdf91c33c1a1ae48e

See more details on using hashes here.

File details

Details for the file p4submodule-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: p4submodule-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for p4submodule-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d99e276ee6d817b721aebc681628b815b067cf59e67d2d74c1c7bf951b9eb179
MD5 9c48395c47fd5296ec733c5aefc8d7e7
BLAKE2b-256 326304142f61ceafc377921e9dd228dd6581b3c9d4530900b07c5dd7719c45b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page