Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. calbzam

    Is it good practice to revert unchanged items?

    Hi, During the checkin operation, a new file revision is not created if the file content keeps the same as before. The "Checkin changes" view can be also re-configured so it checks the file hash to determine if a file has changed (but this calculation takes longer time than just checking the timestamp). When you create a new file revision, it's stored in the database (not using deltas). But note that creating new branches (or even merging them) doesn't mean that the repo size will increase. It will only increase if these operations involve new file revisions. If the repo size is not the same, it could mean that you haven't replicated all the branches. Regards, Carlos.
  3. Unity often touches various assets which marks the file as changed even when the file remains virtually the same. Should I manually run the revert unchanged items or does Gluon check the file contents during check-in and omit identical files from getting to the repo? On that same note, does Gluon ( orPlastic) do any kind of delta encoding with binary files? Often the repository size in cloud is smaller than the local project and this is something I've been wondering for a while. Thanks for reading!
  4. Yesterday
  5. Last week
  6. Ok, good to know that at least you have a workaround. If we can help you to find the repro case, please let us know. Regards, Carlos.
  7. I am using Jenkins v2.152, Plastic plugin v2.20. I'll let you know if I find a repro case sometime in the future.
  8. Hi, What is your Jenkins plugin version? We recently released some fixes related to the env variables: Version 2.19 Added support to SCM environment variables for pipelines. Now, you can check the available ones here: https://<your-jenkins>/env-vars.html Version 2.17 The environment variables weren't properly set if the current or previous build checkout failed. Fixed. My wild guess: The PlasticSCM plugin does not publish changes or set some environment variables to Jenkins for a particular build job, until that job has run successfully at least once. [carlos] I guess this option is not valid anymore as you mentioned that a minimal repro case was properly working? I'm afraid we would need a way to reproduce it in order to understand and fix the problem. If necessary, we can arrange a meeting to review your setup. Regards, Carlos.
  9. I have attempted to create a minimal repro case, but there I was able to use PLASTICSCM_CHANGESET_ID from the start.
  10. I was able to trigger this error several times in succession. Apparently the problem went away if I waited a few minutes and triggered the same build again. It has something to do with how that 'cm find changeset' operation uses a particular time interval to know which changes are of interest.
  11. Repro steps: 1. Create a new, empty repository. 2. Add the following file to the repository with the name Jenkinsfile, and check it in: pipeline { agent any stages { stage ('Fetch PLASTICSCM_CHANGESET_ID') { steps { echo "Change set ID: ${PLASTICSCM_CHANGESET_ID}" } } } } 3. Create a new Pipeline job in Jenkins. Set it to be of type "Pipeline script from SCM". Point it to your repository. 4. Tell Jenkins to build the job once. This is the resulting error message: Started by user admin Obtained Jenkinsfile from repository "ChangeSetIdTest@local" path "/" smartbranch "/main" Running in Durability level: MAX_SURVIVABILITY [Pipeline] node Running on Jenkins in C:\Program Files (x86)\Jenkins\workspace\ChangeSetIdTest [Pipeline] { [Pipeline] stage [Pipeline] { (Declarative: Checkout SCM) [Pipeline] checkout [ChangeSetIdTest] $ cm find changeset where date between '2019-02-17T17:07:01' and '2019-02-17T17:08:46' and branch='/main' on repositories 'ChangeSetIdTest@local' --xml --dateformat=yyyy'-'MM'-'dd'T'HH':'mm':'ss <?xml version="1.0" encoding="utf-8" ?> <PLASTICQUERY> <CHANGESET> <ID>6</ID> <CHANGESETID>0</CHANGESETID> <COMMENT>Root dir</COMMENT> <DATE>2019-02-17T17:08:07</DATE> <OWNER>[redacted]</OWNER> <REPOSITORY>ChangeSetIdTest</REPOSITORY> <REPNAME>ChangeSetIdTest</REPNAME> <REPSERVER>local</REPSERVER> <BRANCH>/main</BRANCH> <PARENT>-1</PARENT> <GUID>0497ef04-4c81-4090-8458-649885400c84</GUID> </CHANGESET> <CHANGESET> <ID>16</ID> <CHANGESETID>1</CHANGESETID> <COMMENT>Added jenkinsfile</COMMENT> <DATE>2019-02-17T17:08:40</DATE> <OWNER>[redacted]</OWNER> <REPOSITORY>ChangeSetIdTest</REPOSITORY> <REPNAME>ChangeSetIdTest</REPNAME> <REPSERVER>local</REPSERVER> <BRANCH>/main</BRANCH> <PARENT>0</PARENT> <GUID>f96514d9-4b05-49e5-98c8-5b2fd5751202</GUID> </CHANGESET> </PLASTICQUERY> [ChangeSetIdTest] $ cm gwp "C:\Program Files (x86)\Jenkins\workspace\ChangeSetIdTest" --format={1} C:\Program Files (x86)\Jenkins\workspace\ChangeSetIdTest is not in a workspace. [ChangeSetIdTest] $ cm diff cs:0@ChangeSetIdTest@local --format={path}#@_sep_@#{revid}#@_sep_@#{parentrevid}#@_sep_@#{status} --repositorypaths Can't diff cset cs:0@ChangeSetIdTest@local because it doesn't have a parent. [ChangeSetIdTest] $ cm diff cs:0@ChangeSetIdTest@local --format={path}#@_sep_@#{revid}#@_sep_@#{parentrevid}#@_sep_@#{status} --repositorypaths Can't diff cset cs:0@ChangeSetIdTest@local because it doesn't have a parent. [ChangeSetIdTest] $ cm diff cs:0@ChangeSetIdTest@local --format={path}#@_sep_@#{revid}#@_sep_@#{parentrevid}#@_sep_@#{status} --repositorypaths Can't diff cset cs:0@ChangeSetIdTest@local because it doesn't have a parent. FATAL: The cm command 'cm diff cs:0@ChangeSetIdTest@local --format={path}#@_sep_@#{revid}#@_sep_@#{parentrevid}#@_sep_@#{status} --repositorypaths' failed after 3 retries [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: The cm command 'cm diff cs:0@ChangeSetIdTest@local --format={path}#@_sep_@#{revid}#@_sep_@#{parentrevid}#@_sep_@#{status} --repositorypaths' failed after 3 retries Finished: FAILURE I'm not sure why, but I think that the Jenkins plugin is attempting to find ancestors starting from cset 0, and this operation fails.
  12. I introduced a workaround into my build script, which is a first step that looks like this... First some helper logic: /////////////////////////////////////////////////////////////////////////////////////////////// def scmChangeSetId = null /////////////////////////////////////////////////////////////////////////////////////////////// // Return a string on the format "1234" with latest changeset ID def getSCMChangeSetId() { def cmResult = bat script: "cm status --nochanges ${SOURCE_DIR}", returnStdout: true // Result will be a multiline string like this: // // <blank line> // C:\Jenkins\workspace\PongSP-Windows>cm status --nochanges C:\Jenkins\workspace\PongSP-Windows/PongSP // cs:67@rep:PongSP@repserver:FallDamage@Cloud // Extract the number '67' from the above multiline string def cmResultLines = cmResult.split('\n') assert 3 == cmResultLines.size() echo "cmResult[2]: " + cmResultLines[2] def changeSetId = cmResultLines[2].tokenize(':@')[1] return changeSetId } ... and then a build step, before the others: stage('RetrieveSCMInfo') { steps { timeout(time: "${DEFAULT_STAGE_TIMEOUT_MINUTES}" as int, unit: 'MINUTES') { script { scmChangeSetId = getSCMChangeSetId() } echo "Changeset ID: ${scmChangeSetId}" } } } ... and then I change any remaining build steps to refer to scmChangeSetId instead of PLASTICSCM_CHANGESET_ID. I trigger a build, and 5 minutes later the build progress display looks like this - which means it's good and it's doing what it is supposed to:
  13. Hi, I have recently created two new Jenkins build jobs based off of an existing build job. The existing build job has been working fine for some time, but the two new build jobs fail. What I find is that with the new build jobs, I get the following error: groovy.lang.MissingPropertyException: No such property: PLASTICSCM_CHANGESET_ID for class: groovy.lang.Binding This is strange, and it is causing trouble when we are about to make a major release. I have a workaround, which I will use for the time being -- directly calling `cm status` and using that result instead of he PLASTICSCM_CHANGESET_ID variable. Still, it would be nice if you could find a solution for this long term. The entire project exists in a Plastic repo. The Jenkins build job is a Declarative Pipeline job. The Jenkinsfile is configured to be fetched as "Pipeline script from SCM", with a selector like this: repository "Freedom@FallDamage@Cloud" path "/" smartbranch "/main" (Use update is enabled, Lightweight checkout is enabled) I am not performing any extra checkouts, just relying on what Jenkins automatically does. Now, the step that fails looks like this: // Build 64-bit Windows Standalone player, with Steam activated // Source project location: ${SOURCE_DIR} // Target build location: ${SOURCE_DIR}/SteamBuild/input // Target executable name: ${PROJECT_NAME}.exe stage('Build') { steps { timeout(time: "${BUILD_STAGE_TIMEOUT_MINUTES}" as int, unit: 'MINUTES') { script { failedStage = STAGE_NAME try { bat "if exist ${WORKSPACE}\\UnityEditor.log del ${WORKSPACE}\\UnityEditor.log" bat "START /WAIT \"Unity\" \"${UNITY_INSTALLATION_DIR}/Editor/Unity.exe\"" + " -quit" + " -batchmode" + " -executeMethod CustomBuild.GenerateBuild_CommandLine" + " -BuildInfo.SourceControl.RepositoryServer \"<org>@Cloud\"" + " -BuildInfo.SourceControl.Repository \"${SCM_REPOSITORY_NAME}\"" + " -BuildInfo.SourceControl.ChangeSetId \"${PLASTICSCM_CHANGESET_ID}\"" + " -BuildInfo.BuildJob.Name \"${JOB_NAME}\"" + " -BuildInfo.BuildJob.Id \"#${BUILD_ID}\"" + " -BuildInfo.Configuration \"${CONFIGURATION}\"" + " -BuildInfo.BuildTimeStamp \"${BUILD_TIMESTAMP}\"" + " -CustomBuild.OnlineVersion \"${JOB_NAME}.${PLASTICSCM_CHANGESET_ID}\"" + " -CustomBuild.Configuration \"${CONFIGURATION}\"" + " -CustomBuild.TargetExecutable \"${SOURCE_DIR}/SteamBuild/input/${PROJECT_NAME}.exe\"" + " -projectPath \"${SOURCE_DIR}\"" + " -logFile \"${WORKSPACE}/UnityEditor.log\"" + " && IF ERRORLEVEL 1 EXIT /B 1" } finally { bat "type \"${WORKSPACE}\\UnityEditor.log\"" } } } } } It is the ${PLASTICSCM_CHANGESET_ID} variable reference which Jenkins claims is unassigned. Now, again -- I am using the same exact script, but with 4 environment variables changed, for another build job that is working well. This is what the Stage view looks like. I triggered the build job twice. The first time, the checkout took a long time since it had to pull down the entire repository. The second time, there were no changes to the repo, so checkout was quick. My wild guess: The PlasticSCM plugin does not publish changes or set some environment variables to Jenkins for a particular build job, until that job has run successfully at least once. Let me know if you want a support ticket with more detailed logs, build scripts & screenshots.
  14. bpivaty

    GUI 2D branch explorer

    Too bad for Linux that is missing since long time.
  15. Ramz-UK

    2D Revision Tree and 'filter only parents'

    Thanks @manu, much appreciated!
  16. calbzam

    Automating workflow with jira and mergebots

    Hi, would you mind reaching us at support@codicesoftware.com? We can arrange a gotomeeting session and help you with the setup. Regards, Carlos.
  17. khan-amil

    Automating workflow with jira and mergebots

    Yeah I followed this blog post. And if jira isn't linked to it then it's working as intended. But if jira is linked then the bot either stops doing anything(if no jira task is linked to the branch), or fails, so I guess I made some kind of mistake while setting it up. Does the jira plug need to have the full path to the project, or only the root path? Can I find some logs related to these bots somewhere to dig into that?
  18. calbzam

    Automating workflow with jira and mergebots

    Hi, Regarding the mergebot configuration, I guess you have followed the steps from: http://blog.plasticscm.com/2018/09/add-mergebot-to-your-repo.html Also, I guess you have filled all the "Issue Tracker Integration" values in the form and also created the plug. The mergebot is monitoring the branch attributes. For instance, once the branch has the attribute status=resolved, it will also check the status value in the JIRA task to check if it's ready to be merged. Regards, Carlos.
  19. calbzam

    Local Network replication (or proxy?) server with cloud

    You could host a local Plastic server (replicating to the cloud) to speed up your builds and your developers can still connect to the cloud if they prefer. Regards, Carlos.
  20. calbzam

    GUI 2D branch explorer

    Hi, I'm afraid the "2D revision history" view is not available. Just the regular "View history" panel. Regards, Carlos
  21. Hi, I'm currently setting up plastic and wanted to automate parts of the workflow between jira and plastic. I've looked into mergebot(trunkbot), and it looked like a perfect fit : when a jira task is put as validated/done, mergebot sees this and tries to merge the branch to /main. Except, trunkbot seems to only checks branches attributes, and not the jira state, even though the setup part of the bot seems to indicate that it should poll for jira status? Am I missing something with the setup, or wrongly setup something? Or does it need some extra steps to link all together?
  22. Ryder_Redhook

    Local Network replication (or proxy?) server with cloud

    That is unfortunate, we need data caching more than we need replication. Similar to how we use the Unity Cache Server to speed up build times. Our office network is not the greatest for hosting for our remote users but I'll set it up and see how it goes for us. Thanks for the clarity.
  23. Earlier
  24. Hello all, I am back on trying Plastic SCM on Linux after some time. The GUI works without any issue but there is no 2D branch explorer per file. Is that normal or am I having an installation issue?
  25. calbzam

    Add/set comment on branch using cm

    Yes, I recommend you to upgrade to get the latest features
  26. kennethharder

    Add/set comment on branch using cm

    Hi, I do not have a editcomment command for cm changeset. It might be due to the version I am using 5.4.16.918. I ended up using attributes, but good to know that there is a solution for the comment.
  27. calbzam

    Add/set comment on branch using cm

    Hi, you can change the changeset comments via: cm changeset editcomment More info at cm changeset --help But I'm afraid you cannot change the branch comment via command line. Regards, Carlos.
  28. calbzam

    Local Network replication (or proxy?) server with cloud

    Hi, I think we already answer your support ticket. Just to summarize: - Plastic Cloud doesn't support a proxy server. Note that the proxy server is just a data cache server, not a full hosted server allowinh replicas... - You can always host your Plastic server and your developers connect to it instead of the cloud. This way, you can also use the locking workflow. - You can still use the cloud to replicate your repos from your hosted server (or to support the workflow for distributed people) but note that the lock workflow will only work if all the developers are pointing to the same central server (hosted or cloud). Regards, Carlos.
  29. Ryder_Redhook

    Local Network replication (or proxy?) server with cloud

    Bit more exploring and found out that if I install the Team Edition client that it gives the option to connect to a Proxy server but the Proxy server logs an error when connected to Plastic Cloud. Which I assume means that Proxy support is not enabled with Plastic Cloud despite the option for it in the Team Edition client. ERROR ExceptionTracerSink - Dumping in-transit exception:There has been an unexpected error "ReadDataForObjects is not available on the azure server". For more information check the server log.
  1. Load more activity
×