Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Donald Newlands

    How do I change Repo name and/or server address?

    Hi, Is there a way to change the repo connection string in Gluon so that if a server moves to a different machine or if we need to rename a repo we can do that without rebuilding the workspace? We need to use different URLs to reach our Plastic server depending on if we're connecting on the local network or over the Internet. This makes it difficult to use Plastic for mobile users. I'm looking for a way to configure the name and address of a repo in Gluon. Thanks! -Donald Newlands
  3. Last week
  4. S_Luis

    Plastic SCM Raspberry

    For those of you who end up here looking for instructions on how to install Plastic SCM on a Raspberry Pi: you need to install the mono-complete package, as it is not enough with mono-runtime. Apart from that, the instructions on the blogpost is pretty much valid. I'll update this post as soon as I publish an updated blogpost on the subject, but for now I'll ask manu to close this thread 🙂
  5. rodgeralley

    Server-side merge and replicatewrite permissions

    Furthermore, I went through and checked the permissions of her group on both the main branch, and the child branch she was merging to. Both permissions are set the same. I don't allow specific denials. If anything, I'll just override by overriding and un-checking a perm. In one case, a denial has been added by the project manager for "ci" permissions but it applies to a group she's not a part of.
  6. rodgeralley

    Server-side merge and replicatewrite permissions

    Below are a few separate instances of the same error from @ChonkyBiscuit. Additionally, I've gone through the branches and checked the permissions individually. The group she's in has the following permissions to the entire repo: The group has the following privileges on the /main branch: And then she was provided individualized privileges to "replicatewrite" afterwards. When given the privilege to "replicatewrite" she is able to "mergefrom." But otherwise, her permissions are restricted. From the Plastic.errors.log: 2018-10-11 14:42:21,387 PC-0960 ERROR Operations - OnError catching exception [You don't have permissions for operation mergefrom.] - Plastic server version: 7.0.16.2596 2018-10-11 14:42:21,387 ERROR PlasticProto.ConnectionFromClient - conn 94456. Error in ProcessMethodCall for method CalculateMerge. You don't have permissions for operation mergefrom. 2018-10-11 16:59:10,120 PC-0960 ERROR Operations - OnError catching exception [You don't have permissions for operation mergefrom.] - Plastic server version: 7.0.16.2596 2018-10-11 16:59:10,120 ERROR PlasticProto.ConnectionFromClient - conn 96374. Error in ProcessMethodCall for method CalculateMerge. You don't have permissions for operation mergefrom. 2018-10-11 17:05:21,782 PC-0960 ERROR Operations - OnError catching exception [You don't have permissions for operation mergefrom.] - Plastic server version: 7.0.16.2596 2018-10-11 17:05:21,782 ERROR PlasticProto.ConnectionFromClient - conn 96400. Error in ProcessMethodCall for method CalculateMerge. You don't have permissions for operation mergefrom. 2018-10-11 17:05:46,923 PC-0960 ERROR Operations - OnError catching exception [You don't have permissions for operation chgperm.] - Plastic server version: 7.0.16.2596 2018-10-11 17:05:46,923 ERROR PlasticProto.ConnectionFromClient - conn 96402. Error in ProcessMethodCall for method SetPermissions. You don't have permissions for operation chgperm. From the plastic.debug.log: 2018-10-11 14:42:21,371 37 DEBUG WorkerThread - WorkerThread.Run: Work retrieved. Id: 37. 1594 ms 2018-10-11 14:42:21,371 37 00000000-0000-0000-0000-000000000000 PC-0960 INFO Operations - Get info for branch /main at repository ID 135 2018-10-11 14:42:21,371 37 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Begin implicit transaction rep_135 2018-10-11 14:42:21,371 37 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Commiting implicit transaction 2018-10-11 14:42:21,371 37 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Commit implicit transaction rep_135 2018-10-11 14:42:21,371 37 INFO ChannelCall - conn: 94456 protocol:plasticproto recb: 16|rect: 0|sentb: 123|sendt: 0|queuedt: 0|prt: 0|th: 37|dest: 0|mt: 0|sert: 0|zip: 0|cpu: 0| 10.10.8.134|user::UsersSID|GetBranchInfoByName 2018-10-11 14:42:21,371 37 DEBUG WorkerThread - WorkerThread.Run: Going to GetWork. Id: 37 2018-10-11 14:42:21,371 20 DEBUG PlasticProto.ConnectionFromClient - conn 94456. ReceiveAsync 2018-10-11 14:42:21,371 26 DEBUG PlasticProto.ConnectionFromClient - conn 94456. awaked. total 1 2018-10-11 14:42:21,371 33 DEBUG WorkerThread - WorkerThread.Run: Work retrieved. Id: 33. 657 ms 2018-10-11 14:42:21,371 33 00000000-0000-0000-0000-000000000000 PC-0960 INFO Operations - Get info for branch /main/ChildBranch at repository ID 135 2018-10-11 14:42:21,371 33 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Begin implicit transaction rep_135 2018-10-11 14:42:21,371 33 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Commiting implicit transaction 2018-10-11 14:42:21,371 33 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Commit implicit transaction rep_135 2018-10-11 14:42:21,371 20 DEBUG PlasticProto.ConnectionFromClient - conn 94456. ReceiveAsync 2018-10-11 14:42:21,387 33 INFO ChannelCall - conn: 94456 protocol:plasticproto recb: 51|rect: 0|sentb: 189|sendt: 0|queuedt: 0|prt: 15|th: 33|dest: 0|mt: 0|sert: 0|zip: 0|cpu: 15| 10.10.8.134|user::UsersSID|GetBranchInfoByName 2018-10-11 14:42:21,387 33 DEBUG WorkerThread - WorkerThread.Run: Going to GetWork. Id: 33 2018-10-11 14:42:21,387 26 DEBUG PlasticProto.ConnectionFromClient - conn 94456. awaked. total 1 2018-10-11 14:42:21,387 46 DEBUG WorkerThread - WorkerThread.Run: Work retrieved. Id: 46. 672 ms 2018-10-11 14:42:21,387 20 DEBUG PlasticProto.ConnectionFromClient - conn 94456. ReceiveAsync 2018-10-11 14:42:21,387 46 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Begin implicit transaction rep_135 2018-10-11 14:42:21,387 46 00000000-0000-0000-0000-000000000000 PC-0960 WARN Security - Access denied. Object id:3@rep:135. SEID UsersSID. Permissions mergefrom 2018-10-11 14:42:21,387 46 00000000-0000-0000-0000-000000000000 PC-0960 ERROR Operations - OnError catching exception [You don't have permissions for operation mergefrom.] - Plastic server version: 7.0.16.2596 2018-10-11 14:42:21,387 46 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Operations - OnError catching exception You don't have permissions for operation mergefrom. at SecurityManager.SecurityHandler.ThrowSecurityAclException(RepId repId, Int64 objId, String permission) at bc.b(RepId A_0, Int64 A_1) at bc.a(MergeSource A_0, IItemHandler A_1) at Codice.CM.Server.SecuredItemHandler.CalculateMerge(SerializedMergeSource source) at Codice.CM.Server.TransactionInterceptor.CalculateMerge(SerializedMergeSource source) 2018-10-11 14:42:21,387 46 00000000-0000-0000-0000-000000000000 PC-0960 DEBUG Transaction - Rollback implicit transaction rep_135 2018-10-11 14:42:21,387 46 551855dd-ce88-4db5-b07a-e76125c78a5c Server:PLASTIC-SERVER INFO Transaction - Commit transaction 551855dd-ce88-4db5-b07a-e76125c78a5c. Transaction time 0 ms 2018-10-11 14:42:21,387 46 ERROR PlasticProto.ConnectionFromClient - conn 94456. Error in ProcessMethodCall for method CalculateMerge. You don't have permissions for operation mergefrom. 2018-10-11 14:42:21,387 46 DEBUG PlasticProto.ConnectionFromClient - at Codice.CM.Server.TriggerInterceptor.CalculateMerge(SerializedMergeSource mergeSource) at g8.ad(PlasticBinaryReader A_0, qq A_1) at g8.a(PlasticMethods A_0, PlasticBinaryReader A_1, qq A_2) at g2.a(PlasticMethods A_0, PlasticBinaryReader A_1, jk A_2, d A_3) at g2.d()
  7. ChonkyBiscuit

    Server-side merge and replicatewrite permissions

    The client logs don't seem to show much, and I'm attempting to get the server logs from the repository owner now. I can't reproduce this on my local server either, so I'm wondering if there is a 'deny' somewhere that I can't see? The solution that worked in this case was adding my user to br:/main (the branch to mergefrom) and the attached file has the list of permissions of the main branch. I was originally in the Plastic_Project_RW LDAP group, I am in no others that were listed. Relevant portions of the client debug log: 2018-10-11 14:42:21,904 DOMAIN\thisUser DEBUG PlasticPipe - sentb: 140|recb: 68|prt: 0|CalculateMerge|plastic-server:8087 2018-10-11 14:42:21,907 DOMAIN\thisUser DEBUG CmProxy - Error invoking CalculateMerge. You don't have permissions for operation mergefrom.. at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4, Boolean A_5, abl& A_6) at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4, abl& A_5) at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4) at en.a.a(oo A_0, Credentials A_1) 2018-10-11 14:42:23,451 DOMAIN\thisUser ERROR plastic - Plastic SCM client version: 7.0.16.2562 2018-10-11 14:42:23,451 DOMAIN\thisUser ERROR plastic - Error message: You don't have permissions for operation mergefrom. 2018-10-11 14:42:23,492 DOMAIN\thisUser DEBUG plastic - StackTrace: at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4, Boolean A_5, abl& A_6) at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4, abl& A_5) at c6.a(oo A_0, PlasticMethods A_1, Credentials A_2, w A_3, w A_4) at en.a.a(oo A_0, Credentials A_1) at acm.a(a A_0, oo A_1, String A_2, b A_3, a A_4, UserInfo A_5, aft A_6, Boolean A_7) at acm.Invoke(a A_0, oo A_1, String A_2, b A_3, a A_4, UserInfo A_5, aft A_6) at en.a(oo A_0, PlasticMethods A_1, w A_2, w A_3) at qh.a(SerializedMergeSource A_0) at aiy.a(WorkspaceInfo A_0, MergeSource A_1) at k.a(MergeSource A_0, MountPointWithPath A_1) at qb.a(MergeSource A_0, MountPointWithPath A_1) at qb.a(Boolean A_0) repoPermissionsN.xml
  8. Hi, I am attempting to run a "merge to" operation using cm, which fails with a message like : The "Merge-to" operation cannot be executed because the merge from changeset cs:80@studio_library to branch br:/aberland has conflicts. It is neccesary to run a "Merge from" operation from a workspace to resolve those conflicts. If I run a "merge from" inside the gui, the merge processes without any messages or conflicts! It is unclear what the difference here is, since this afaik this is the exact same operation. My cm command ( server name redacted 😞 cm merge cs:80@rep:studio_library@ssl://#####:8088 --to=br:/aberland@rep:studio_library@ssl://####:8088 --merge I read in an another post that someone was experiencing similar issues when they had xlinks in their repo. If indeed, there are conflicts, I would expect to see a message about what these are. As well, since this operation is part of our pipeline tools that wrap around plastic, if there was a way to display the merge conflict resolver gui, that would be excellent. Any help with this front would be much appreciated as well. Thank you! - Aleks
  9. Hi, I checked your case (using your versions) but I couldn't reproduce it. A merge-to can be done without any problem without the permission 'replicationwrite'. I reviewed the code and as far as I see the ' replicationwrite ' permission is not checked during the merge-to operation. This permission is only used by the replication and the tube. Could you attach the client and the server log with the error? Maybe we can see anything on them. Best regards Borja
  10. Earlier
  11. Foxer

    mergbots setup

    Thanks a bunch! Ahhh unfortunately it indeed does say it cannot start without setting up a valid CI. 2018-10-13 09:02:33,588 INFO trunkbot - TrunkBot [Hal] started. 2018-10-13 09:02:33,594 ERROR trunkbot - TrunkBot [Hal] is going to finish: error found on argument check 2018-10-13 09:02:33,594 ERROR trunkbot - trunkbot can't start without specifying a valid config for the following fields: * The plan for CI config must be defined. Perhaps it should be setup so you can run it standalone. At any rate I connected it to a remote jenkins instance for testing and it works. Err spoke to soon. It at least attempts to work so progress, but without fully setting up the Jenkins instance it errors out and sets the branch to failed. This really should be able to work completely independent of any external system.
  12. psantosl

    mergbots setup

    And yes, we must improve this, to make it easier to understand if things go wrong from the webadmin... we are on it 🙂
  13. psantosl

    mergbots setup

    Hi @Foxer You don't need an issue tracker nor a CI, Plastic can merge the branches back as soon as they get the right attribute (if I'm not mistaken, because we have different mergebots internally and it varies). If the mergebot doesn't start, check: \devops\logs under your Plastic SCM *server* installation. Check the trunkbot.*.log.txt. It will tell you why it is not starting. pablo
  14. I'm attempting to get this setup for testing. So I installed the 5 day trail enterprise server at home etc. I cannot seem to get the mergebot to stay running. Upon page refresh in the admin UI it shows as stopped having done nothing. I'm not attempting anything complex with it so there is no CI or issue tracker. I just want to try out it's functionality before I step it up...so I'm hoping that you don't HAVE to configure a tracker/CI/notification system to get it to run.
  15. psantosl

    Server-side merge and replicatewrite permissions

    I'm going to check but "replicatewrite" definitely shouldn't have nothing to do here 😄
  16. Server version: 7.0.16.2596 Windows Client version: 7.0.16.2421 I'm looking to use the server-side merge to automate merging main to a different branch, and it seems like it requires the `replicatewrite` permission to do so. If I try to merge server-side without that permission, it fails with the error 'You do not have permissions for operation mergefrom', even though I have that permission on the repo. Is this expected behavior? These are the commands I run to merge: cm merge br:/main@foo --to=br:/main/example@foo --merge --shelve -c="Local Shelve created for example branch" cm merge sh:## --to=br:/main/example@foo --merge
  17. DarkCamper

    CLI - Solving conflicts before merge

    Ok, thanks!
  18. Borja

    CLI - Solving conflicts before merge

    Sorry, Rubén. I put it wrong before. The index starts at 1 and not at 0. My fault. I edited the previous post with the right info.
  19. DarkCamper

    CLI - Solving conflicts before merge

    Thanks a lot Borja! I'll make good use of this information Just another thing. If I use "conflict=0" the operation ends with an error stating that '0' is not a valid conflict. But "conflict=1" works (and there's only one DIR_CONFLICT). I'm attaching a screenshot of the test I've done
  20. CadmusLabs

    Shelving

    When it is expected to appear? It is a crucial feature and it is extremely annoying not to have it, while you introduce MergeBots and other features that normal user does not need.
  21. Borja

    CLI - Solving conflicts before merge

    Hi Rubén, Well, in that case, you will need to use these hack options. As far as you don't have xlinks in the repository they will work. Anyway, we will try to fix them soon. I will try to explain them to you: --mergeresultfile & --solvedconflictsfile, are both used to store the merge info between different calls. You need to pass a path for each one, this path will be created on the first call and updated on each next call. After the last call, you need to delete both files. All the calls that you perform to do a merge need to use the same files. To solve a directory conflict you need to use the following options: --resolveconflict -> A flat to indicate that the call is to solve a directory conflict --conflict -> The index of the conflict that you want to solve. Starting at 1. --resolutionoption -> Indicate the conflict resolution it can be: "src" to keep the source change and discard the destination change. "dst" to keep the destination change and discard the source change "rename", only if the conflict type support this resolution, to rename the destination to the given name provided on the option "--resolutioninfo" -- resolutioninfo -> To provide the name to use on a rename resolution --nointeractiveresolution -> A flag to make the command file when the user intervention is required to solve a directory or file conflict. To print the output on a machine-readable way (much more easy to parse): --machinereadable -> A flag to print the output in a machine-readable format --startlineseparator -> Prefix for each output line. By default, it's a string empty --endlineseparator -> Suffix for each output line. By default, it's a string empty. --fieldseparator -> Field separator. By default, it's a space(' '). Command sample: cm merge --machinereadable --startlineseparator=start@_@line --endlineseparator=new@_@line --fieldseparator=def#_#sep --mergeresultfile=C:\Users\Borja\AppData\Local\Temp\2tmp4D6C.tmp --solvedconflictsfile=C:\Users\Borja\AppData\Local\Temp\2tmp4D6D.tmp --resolveconflict --conflict =0 --resolutionoption=rename -- resolutioninfo=bin_dst br:/main/task --merge Anyway, I recommend you to take a look at: * Server-side merge, a workspace less merge -> http://blog.plasticscm.com/2018/03/workspace-less-merge-to.html * Devops, how to automatize a DevOps cycle including plugin code sample for some CI -> https://www.plasticscm.com/devops I think that they could be interesting for you and what you are doing. Best regards, Borja
  22. DarkCamper

    CLI - Solving conflicts before merge

    I didn't know you could specify a file path. Already tried it and it works, thanks! We're preparing some scripts for our CI pipeline that may take decisions about some directory conflicts automatically and they're run without human intervention. So there's no chance to use the UI, only the CLI tool with --nointeractiveresolution. Besides we are developing a Cakebuild addin to allow interaction with PlasticSCM in cake scripts, and we'd like it to be as much complete as possible (time constraints aside...). There are already addins for other VCS and we thought we could provide the cakebuild community with some Plastic love Now, knowing I'm having to use the CLI (if there's another option I'm willing to use it), could you explain a bit those issues, or give me some tips about how to use those arguments? I'd rather not end up blowing up something when dir conflicts arise. Thanks!
  23. Borja

    CLI - Solving conflicts before merge

    Hi Rubén, The option equivalent to "Merge keeping source changes" is "--keepsource" and the option equivalent to "Merge keeping workspace changes" is "--keepdestination". To solve only some file conflicts and not all, you can give specify the paths of the file conflicts to solve. Like this: cm merge br:/main/task --merge --keepsource /fichero This command and the "Merge selected files" or "Merge selected files choosing method" only allows leaving the other file conflicts pending to be resolved on a next call. But all the directory conflicts must be resolved first and all the changes to apply (added, deleted, moved & modified only on source) are applied before solve any file conflict. One question, why do you solve the directory conflict using all these hack options? Why don't you solve it using the interactive resolution of the default command? cm merge br:/main/task --merge You can also solve the directory conflicts using the default resolution and keep the source changes for the file conflict. Even more, as you have only one conflict you don't need to specify the path. cm merge br:/main/task --merge --keepsource The hack options that you are using are internal options using by our plugins and the merge resolution using them is much more complicated. You are missing the option "--mergeresultfile" that is also needed when " --solvedconflictsfile" is used. Anyway, they are not public because they have some known issues (when they are not used with care) and I will recommend you to not use them. Best regards, Borja
  24. DarkCamper

    CLI - Solving conflicts before merge

    Hi, I'm trying to do a merge operation that has an directory conflict (evil twin) and a file changed in both contributors with 'cm'. Something like this I think i've been able to solve the directory conflict using a mix of "--resolveconflict" ,"--conflict", "--resolutionoption" and "--solvedconflictsfile" (none of them show in the 'cm merge help' message btw). But I've been unable to do the equivalent of the following GUI action (just for one file, not the entire merge operation): Could you give me some insight about how could I do that? Regards, Rubén.
  25. DarkCamper

    Improved "cm.exe" command output

    Hi Pablo, thanks for your quick response. Yeah, I know. It's really common for growing projects to become a bit of a mess unless you spend some serious time designing for consistency. And plastic has grown a lot. I know CmdRunner but it doesn't really help that much by itself (it's a nice wrapper to call 'cm' and retrieve the raw results, but the painful task of parsing all the different formats is still there). I never implied (sorry if I did it by mistake) that the CLI tool is not tested, only that using it for automation is sometimes a cumbersome process due to inconsistencies. I agree with you, a REST API is simply the best when offering a universal service. And now my letter to Santa (or to the Three Wise Men, your choice) with some suggestions/wishes: Please (please!) improve the documentation, both online and the help text of the CLI. Your tools have tons of hidden options and parameters that allow you to do really useful stuff! Even with well-known arguments sometimes you don't know what values can they take or what will they do when you use then. And when using "--machinereadable" I haven't been able to find information about what does each field mean, what values can they have... When reading the docs it's easy to find info about simple tasks but when things get a bit more complicated (just a bit, nothing really weird) these forums are the only realistic choice we have. You guys do a great work answering all the posts, but I think that many times all that information should've already been available in the docs. Or somewhere where google (whose tentacles reach everywhere) could index it. For the CLI tool. How about adding a "--json" argument to all commands that makes it output a json string with all the results of the execution? I know some commands have a "--xml" option (and I wouldn't mind if you added --xml instead of --json to your commands) but maybe using json you could share some code with the REST service 😁 For the REST API I think that the most important (at least for me) missing features would be to be able to do merges (with all the special stuff that happens when merging such as file/dir conflict resolution) and shelves. And that's all. Hope it didn't sound much like a rant, I really love Plastic (I suffered subversion and VSS before, uuuugh).
  26. Terry Drever

    SVN to Plastic SCM via git sync.

    Hey Carlos, I just sent an email to the provided address with the provided logs, and a link to this forum post. Regards, Terry
  27. calbzam

    SVN to Plastic SCM via git sync.

    Yo can find "plastic.debug.log.txt" in the server folder. Regards Carlos.
  28. Terry Drever

    SVN to Plastic SCM via git sync.

    Hello Carlos! No problems at all, which server logs would you like, and in which directory can I find them? - Terry
  1. Load more activity
×