{"id":20987204,"url":"https://github.com/haxpor/p4u","last_synced_at":"2026-04-21T18:36:33.704Z","repository":{"id":149553076,"uuid":"314136210","full_name":"haxpor/p4u","owner":"haxpor","description":"Fill the gap of what missing in p4.","archived":false,"fork":false,"pushed_at":"2021-08-03T13:09:59.000Z","size":24,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T07:35:25.225Z","etag":null,"topics":["cli","command-line","p4","perforce"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haxpor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-19T04:30:40.000Z","updated_at":"2023-02-16T02:17:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"6a3eecc8-82fa-4d3e-822d-b15345831422","html_url":"https://github.com/haxpor/p4u","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxpor%2Fp4u","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxpor%2Fp4u/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxpor%2Fp4u/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxpor%2Fp4u/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haxpor","download_url":"https://codeload.github.com/haxpor/p4u/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243394282,"owners_count":20283940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","p4","perforce"],"created_at":"2024-11-19T06:16:17.165Z","updated_at":"2025-12-24T18:49:13.575Z","avatar_url":"https://github.com/haxpor.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# p4u p4 utility (p4u) to fill up the gap of p4 itself.\n\nIt is based on bash script thus working with bunch of shell commands.  It works\non top of `p4` binary as released officially but filled the gap for features and\nthings that could be better.\n\n\u003e For someone coming from `git` to use perforce via its cli 'p4', I bet you know\n\u003e what was missing in the latter.\n\n# Installation\n\nYou can just clone this repository, then symblink `p4u` file into your executable\npath e.g. `/usr/local/bin/`, or you can copy the file there.\n\nTo make a symlink from `p4u` to `/usr/local/bin/p4u`, you can execute the following\ncommand\n\n```\nln -s `pwd`/p4u /usr/local/bin/p4u\n```\n\nassume that you are currently at the project directory, and you have permission\nto create a file at target directory. Otherwise, you might need `sudo`.\n\n# Configuration\n\nConfiguration is configured through environment variables for now, until there\nwould be much more settings to be made, we might change the way to do this.\n\nSet the following environment variables through your aliased or profile file\ne.g. `~/.bash_aliases` or `~/.bash_profile`; for example `export\n\u003cCFG-NAME\u003e=\u003cCFG-VALUE\u003e`\n\n* `P4U_BIN` - to change which `p4` binary to use inside the script\n\n  It is a high chance that you would be working on WSL 1/2 with perforce. The\n  project should be able to built on Windows platform, and able to interact with\n  command line on WSL. `p4` binary for WSL won't work as it cannot adapt to use\n  the correct path for each platform correctly. So using `p4.exe` which is a\n  binary for Windows version, but we execute it on WSL is the solution as it\n  understands Windows path correctly. Thus it becomes this setting. Most likely,\n  just set `P4U_BIN=p4.exe` should be fine for WSL environment.\n\n# Features\n\n## `p4u describe`\n\nOriginal `p4 describe` has limitation as follows\n\n* It doesn't show (additional) diff of newly added files on the shelved\n  changelist.\n* It outputs in non-unified (non-git compatible) format, it needs a particular\n  flags to make it output just that\n* It outputs excessed header text although it's good, but sometimes we want to\n  directly pipe it to ` ... | view -` (`vim`) to see as diff format immediatley\nwithout manual removal of such header lines.\n\nUsages as implemented\n\n* `p4u describe -S=123456`\n* `p4u describe -S=123456 --no-header`\n\n# License MIT, Wasin Thonkaew\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaxpor%2Fp4u","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaxpor%2Fp4u","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaxpor%2Fp4u/lists"}