Commit Graph

32 Commits

Author SHA1 Message Date
paul chipchase
112f017f85 [P4VUtils] Add a new command to open jira issues tagged in a changelist description in the callers web browser.
#preflight 645cc6062965f6ea8e8318cb

- Add a new command 'OpenJiraCommand' which will attempt to open jira in the users web browser to any issue tagged in that changelists description via the '#jira' tag.
-- We assume that the issue name will be Project-IssueNumber, where the project can contain both letters and numbers. The jira standard enforces that the first character of the project name cannot be a number but we have not enforced that in our checks for simplicity.
-- If multiple issues are tagged we should be able to match with them, even if they are on the same line and/or separated with ' ', ',' or '+'
-- If no tags are found we inform the user via a popup message.
-- We now have an entry in the ini file for the jira server.

- Added a new CommandCategory named 'Browser' to be used by commands that attempt to open new pages in the users web browser.
-- Moved the existing OpenPreflightCommand and RobomergePreviewCommand commands there.
-- It could be argued that PreflightCommand should be moved to 'Browser' too but it feels more at home under 'Horde'
- A number of commands were copy/pasting the code to open a path in a new process (given that the syntax is slightly different per platform) so this code has been moved to a shared ProcessUtils class.

[CL 25426132 by paul chipchase in ue5-main branch]
2023-05-11 09:43:58 -04:00
paul chipchase
d50312302b [P4VUtils] Rename the 'UE Submit' category to 'UE Content'
#rb trivial
#jira none
#rnx
#preflight 6448ec2e1c2846595cd91747

- There are a few commands that can submit changelists but do not feature under 'UE Submit' submenu which some people felt was misleading.
- As the only command there is currently intended to be used when submitting content, 'UE Content' feels like a good fit.
- Renamed SubmitCommand.cs as this was also misleading.

[CL 25195284 by paul chipchase in ue5-main branch]
2023-04-26 05:33:46 -04:00
Josh Adams
9247c6e962 - BuildGraph p4vutils changes to build and submit to p4 all platform binaries, NFL and regular
- Minor other fixes to p4vutils
#rb ryan.hummer
#preflight skip

[CL 24970490 by Josh Adams in ue5-main branch]
2023-04-07 17:18:04 -04:00
josh adams
384ec009e9 - Fixed up latest p4vutils for Mac/Linux, updated project to handle all platforms
- Added UserInterface static class for pulling DialogBox and Clipboard stuff, which needs per-platform implementations
- Changed Windows to install P4VUtils.exe <command>, instead of dotnet P4Utils.dll <command>
- Added scripts to build all platforms, from all platforms (using the IsWindows, IsLinux, IsOSX, WithRestricted properties in the project)
- Updated Binaries as well
#rb ryan.hummer
#preflight skip

[CL 24964516 by josh adams in ue5-main branch]
2023-04-07 10:43:57 -04:00
Ryan Hummer
c2b977cf70 P4VUtils: Refactoring command discovering to be dynamic
Allows adding internal commands for Epic use only

#rnx
#jira none
#preflight na
#rb ben.marsh, paul.chipcahse

[CL 24898336 by Ryan Hummer in ue5-main branch]
2023-04-03 15:16:05 -04:00
paul chipchase
fc50254bb2 Add a P4V command to open up a the preflight page in a browser if there is a #preflight tag in a changelist description.
#rb Sebastian.Nordgren, Ryan.Hummer
#rnx
#preflight 636a63c063037c1026488d19

- We search the changelist description for '#preflight ???' and then open the appropriate page.
- If no tag is found we will display a message to the user via a modal dialog so that they are aware that no page will be opened.
- Refactored PreflightCommand.OpenUrl to be a public static method to avoid copy and pasting code.
- Refactored PreflightCommand.GetUrl to move the extraction of the Horde server address to a public static method to improve code re-use.
- The command will be added to P4 so that it can be used on pending and submitted changelists.

[CL 23050223 by paul chipchase in ue5-main branch]
2022-11-09 05:15:59 -05:00
andrew firth
0a820ef03a [P4VUtils] - add DescribeDirectory tool to output a list of all CL's in the last 30 days for a specific folder in a succinct/clean format.
#review-21766482 @Ben.Marsh @Aurel.Cordonnier
#rb Aurel.Cordonnier
#jira none
#rnx
#preflight n/a

[CL 21814361 by andrew firth in ue5-main branch]
2022-09-06 08:34:12 -04:00
aurel cordonnier
55eccfc22b [P4VUtils] - re-organizing tools
Renamed UE Helpers to UE Toolbox
Moved backout tool to UE Toolbox
Moved 'find last edit' to 'Root Helpers' (from UE Helpers)
#jira UE-159399
#rnx
#preflight n/a
#rb Marc.Audy, Ben.Marsh

[CL 21092009 by aurel cordonnier in ue5-main branch]
2022-07-14 12:19:29 -04:00
Josh Adams
c676492e66 - Reverted the P4VUtils changes that needed dotnet6, since some users don't have it installed, and we can't use the dotnet checked in to p4, since P4VUtils are not tied to any stream
#rb none
#preflight skip

[CL 20537858 by Josh Adams in ue5-main branch]
2022-06-07 10:38:06 -04:00
paul chipchase
67a2b94f34 P4VUtils will no longer fail to remove commands that contain quoted string
#rb Sebastian.Nordgren
#rnx
#preflight 62985fe89907cbadbaa25855

- This is a follow on fix from 20451429, although that solved the problem of duplicate registered commands due to differing DotNet locations it did not solve a problem introduced in 20248689 caused by quoting the command argument.
- If the path in the command element does get quoted due to containing a space in the file path then FileReference will fail to parse it as RemoveCustomToolsFromNode intended and the comparison between the Command element and the DotNet location would always fail.
-- This meant that a newly published version of the tool would replace the old commands, but when published a second time would start to register duplicate commands.
- The simple solution is to try and strip the quotes (if any) before creating the FileReference for comparison.

[CL 20466696 by paul chipchase in ue5-main branch]
2022-06-02 04:15:10 -04:00
paul chipchase
ff35395386 Fix P4VUtils failing to remove its old commands when running an install
#rb Josh.Adams
#rnx
#preflight 62975f7c101592b805fa7cb9

- When UGS invokes the tool to be installed, it will call 'P4VUtils.exe install' which meant that getting the process path as the dotnet path would return the exe
- However previous versions of the tool were creating a path to dotnet.exe to use as the dotnet path
- When removing the old commands before installing the new ones, one of the filters is to check the dotnet path of the command and make sure that it matches the current one
- So if the older version was using a path to dotnet.exe and the newer version, the p4vutils.exe, they won't match and the old commands won't be removed, so when the new ones are added we end up with duplicates.
- For now the easiest fix is to go back to the logic before change 20248689, so on windows we make sure that we find dotnet.exe so it will match.

[CL 20451429 by paul chipchase in ue5-main branch]
2022-06-01 08:57:36 -04:00
paul chipchase
64efab556e Fix more compilation warnings in P4VUtils.
#rb Sebastian.Nordgren
#rnx
#preflight 628c85f58673efbf3c0a5e3f

- Added checks when parsing xml to make sure that expected nodes/lists were found and are not null.
- Response was assigned as null, but nothing was checking for this. The initial value has been changed to an empty string which wioll invoke the user cancelling the operation as the default behaviour.
- StreamReader.ReadToEnd is a blocking call in an async method. Replaced with await StreamReader.ReadToEndAsync.

[CL 20346208 by paul chipchase in ue5-main branch]
2022-05-24 07:14:12 -04:00
paul chipchase
0e85c4730c Fix P4Utils to compile with the changes to the logging API in CL 20245803
#rb Ben.Marsh
#rnx
#preflight 628b8e06693c5e1de2797dd6

[CL 20326531 by paul chipchase in ue5-main branch]
2022-05-23 09:49:24 -04:00
Josh Adams
6f60e61383 - Some p4vutils code changes to match the already checked ion binaries
#rb trivial
#preflight skip

[CL 20248689 by Josh Adams in ue5-main branch]
2022-05-17 15:02:27 -04:00
Josh Adams
a6c5a6ccd9 - Updated p4vutils to dotnet6, so we can use OperatingSystem nicely
- Will compile on Mac and Linux now
- Mac replaced the WinForms functionality with AppleScript
- Linux will compile be have reduced functionality
- Fixed up paths for p4v settings and dotnet location
- Added binaries and installer scripts for all 3 platforms - won't need UGS to install, will copy to user-library location (may need some adustment on Linux, will address after)
#rb will.damon
#preflight skip

[CL 20244727 by Josh Adams in ue5-main branch]
2022-05-17 12:00:08 -04:00
paul chipchase
73e85f5e17 Extend P4VUtils with a new command that allows the user to submit&virtualize package files (for projects with asset virtualization enabled)
#rb Ben.Marsh
#rnx
#jira UE-143675
#preflight skip

### P4VUtils
- Add a new submenu "UESubmit" for commands related to the submission of files and changelists
-At the moment the submenu only has a single command SubmitAndVirtualizeCommand

### SubmitAndVirtualizeCommand
- This command is used to run the asset virtualization process over all of the files in a changelist before submitting it using the following logic:
-- Find all package files in a changelist
-- Sort the files by project
-- Find the engine installation associated with each project
-- Build and run the stand alone virtualization tool (if needed) and pass it the packages for the project
-- If the virtualization process succeeeded for all projects we can submit the original changelist, other wise print errors to the p4v terminal.
- In most cases all of the packages in a changelist will be under a single project, but the command should be able to cope with many packages from many different projects using many different engine installations.
- Note that unlike a normal submit, virtualizing a package can change it on disk (by removing the payload data) which means we will probably run into problems where a running instance of the editor has access locks on the file and they cannot be edited. At the moment this command and the stand alone tool will just error, there is no tool<->editor communication protocol set up to request that the editor release the package file. This will be addressed as a future work item.
- This is the first pass of the command, there are a number of non-essential todo comments left in the code that will be addressed based on feedback from the end users.

[CL 19752487 by paul chipchase in ue5-main branch]
2022-04-14 04:26:33 -04:00
Josh Adams
83fb2b68f8 - Fix P4VUtils to compile with latest EpicGames.Core
#rb paul.chipchase
#jira none
#preflight skip

[CL 19739667 by Josh Adams in ue5-main branch]
2022-04-13 10:27:29 -04:00
Ben Marsh
78ca05b4ce P4VUtils: Enable static analysis.
[CL 18449401 by Ben Marsh in ue5-main branch]
2021-12-13 17:09:39 -05:00
Maxime Mercier
1a49c53b87 New perforce tools
Data tools:
* Convert data to local writable -> Convert All data in changelist or all selected data files to local writable

Unshelving tools:
* Unshelve to current revision -> Remembers revision all files you are about to unshelve and if the revision is older, will sync to saved revision
* Unshelve and make data writable -> Unshelve changelist but for data will make them writable locally

#jira none
#review-17681604
#rb Andy.Firth Brandon.Dawson
#preflight skip

#robomerge 5.0
#robomerge FnMain

[CL 18039467 by Maxime Mercier in ue5-main branch]
2021-11-03 15:49:48 -04:00
andrew firth
83fe64ea47 [P4VUtils] - add Fast reconcile options for code + all - performs a reconcile on files in P4 that are writeable but NOT checked out
#review-17096558 @Ben.Marsh @Brandon.Dawnson
#rb Ben.Marsh

[CL 17096670 by andrew firth in ue5-main branch]
2021-08-07 22:49:04 -04:00
aurel cordonnier
118061ae2b Renaming p4vutil tool to make it more clear
#rb JeanMichel.Dignard
#rnx

[CL 17060075 by aurel cordonnier in ue5-main branch]
2021-08-04 17:18:20 -04:00
aurel cordonnier
ab8e255930 P4 Blame tool for P4V (requires input of the line number)
#rb marc.audy, ben.marsh
#jira none

[CL 16852242 by aurel cordonnier in ue5-main branch]
2021-07-14 13:23:58 -04:00
andrew firth
443e5c0c54 [P4VUtils] - add folders for tools.
#review-16605487 @Ben.Marsh

#rb Ben.Marsh

[CL 16622456 by andrew firth in ue5-main branch]
2021-06-10 09:32:54 -04:00
andrew firth
cabe530066 [P4VUtils] - small feedback changes, addition of refresh and shortcut for all custom tools.
- snapshot now more descriptive
- backout now more descriptive
- preflightAndSubmit reverted to old behavior, new command to MoveWriteableFilesthenPreflightAndSubmit added
#review @Ben.Marsh

[CL 16596338 by andrew firth in ue5-main branch]
2021-06-08 19:06:41 -04:00
Ben Marsh
e1c10e2062 P4VUtils: Fix warning.
[CL 16569107 by Ben Marsh in ue5-main branch]
2021-06-07 08:25:35 -04:00