King_DuckZ Posted May 11, 2012 Report Share Posted May 11, 2012 Hello, I'm interested in evaluating Plastic for our next project as an alternative to what we use now. As suggested by Pablo in a comment to a blog post, I'd like to ask the following before starting experimenting with Plastic: does Plastic rely on the read-only flag? does Plastic rely on the read-only flag on Windows? why do you provide a Visual Studio plugin? does Plastic need to know about everything you do/want to do? If so, what happens if I use other text editors or custom made tools? can you easily commit only a part of a file? can you easily change history (ie: interactive rebase in git, reset --hard...) does Plastic enforce a certain line ending, like Perforce? is there an easy way to see the unified diff instead of the side-by-side I saw in the screenshots? is there an easy way to produce and apply patches? can you blame, and can Plastic look through merges in order to report the correct author of a certain line? can you do everything from the CLI? Edit: here are the comments I'm referring to Link to comment Share on other sites More sharing options...
manu Posted May 11, 2012 Report Share Posted May 11, 2012 Hi King_DuckZ! does Plastic rely on the read-only flag on Windows? No, it's not needed. You can work without it in both systems Windows and Unix. Actually this is default working mode in the newer releases. why do you provide a Visual Studio plugin? does Plastic need to know about everything you do/want to do? If so, what happens if I use other text editors or custom made tools? There's no problem about using a different IDE, we have the "transparent scm" feature that will collect all your code refactors smoothly (http://www.plasticscm.com/features/transparent-scm.aspx) We provide a Visual Studio since some customers are used to use a Plugin in their daily basics. At the end of the day you can achieve the same using the "Transparent scm" feature. can you easily commit only a part of a file? I'm afraid that you can't, It's and old request but it's not done yet. can you easily change history (ie: interactive rebase in git, reset --hard...) yes, undo your workspace changes and switch to the desired changeset, HEAD if you want. does Plastic enforce a certain line ending, like Perforce? No. is there an easy way to see the unified diff instead of the side-by-side I saw in the screenshots? No, but it can be easily scripted using the cm cat command. is there an easy way to produce and apply patches? You can use the "shelve" feature in order to achieve it. You can apply shelves along your repository we are thinking in a way so send "shelves" using the replica operation or mail. can you blame, and can Plastic look through merges in order to report the correct author of a certain line? Yes, you can use the Annotate feature to review the lines author and where it was done. can you do everything from the CLI? Almost everything. Actually there are more options in the CLI On the other hand, for example, you can't delete a changeset from the command line. Link to comment Share on other sites More sharing options...
King_DuckZ Posted May 25, 2012 Author Report Share Posted May 25, 2012 Sorry for taking so long, this period has been very busy and we didn't do much experimenting. Today I finally have the time to test Plastic out, so here are my thoughts. I'll post more later as I practice with it. Regarding the questions I posted earlier: 3 - That's quite an important feature imo. It's actually what allows you to keep your commits tidy and atomic. It would be great to have it in Plastic. 4 - I probobly didn't understand, but I was referring to the ability in git to reorder commits. For example, I commit locally a new file that seems to work, maybe a c++ template. Then I do more commits until I use a method from the new template class for the first time (uh... it happened to a friend actually...) and discover it doesn't build. Normally, I make a new commit with the fix, and before pushing I squash the two template commit together, so the history quality stays high. Please refer to this: http://blogs.gnome.org/alexl/2009/10/12/the-gospel-of-git-interactive-rebase/ 6 - Again, I would love to have that in Plastic. The problem is not scripting the tool itself, but rather making sure that this tool is available at its latest version on every machine, including servers. Thank you for your interest in my opinion. Link to comment Share on other sites More sharing options...
King_DuckZ Posted May 25, 2012 Author Report Share Posted May 25, 2012 Ok, I'm kind of lost. I created a new repository and then a new workspace and added a few dummy files, then I created a new test branch. Last, I deleted the directory where I did all that. It looks like I needed a server to do that, so I just used localhost as the server: 511 cm mkrep plasticTest@localhost:8087 514 cm mkwk MyTest . 516 cm add . 518 cm status 519 cm ci -h 520 cm ci -h|less 521 cm commands | less 522 cm | less 523 cm gs 524 cm | less 525 cm status 526 cm ci -m "Test first import" 527 cm add test.txt 528 cm status 529 cm gs 530 cm gs * 531 cm ci -m "Test first import" 532 cm find branches 533 cm mkbr testBranch 534 cm find branches 537 cm replicate -h|less 538 cm replicate testBranch@localhost testBranch@LinuxServer:8087 Next, I installed a Plastic server on a Linux machine. Similarly to what I did earlier, from my Windows PC I did: mkdir Framework cd Framework cm mkrep Framework@LinuxServer:8087 cm mkwk MyWorkspace . cp -r <project path>/Framework/* . cm add -R * cm ci -m "Framework first import" The problem is that I get this error: A merge is needed from changeset cs:1@rep:default@repserver:127.0.0.1:8087 to changeset cs:0@rep:default@repserver:127.0.0.1:8 087 (the changeset you are currently loading) in order to checkin. The checkin operation cannot continue. It is necessary to s olve the conflicts by merging your current workspace contents with the latest contents of the branch you are currently working on. Then, you can retry the checkin operation. What did I do wrong compared to the first try? Link to comment Share on other sites More sharing options...
manu Posted May 25, 2012 Report Share Posted May 25, 2012 I think you are working with the same repository in both workspaces. Run a "cm ss" command in both workspaces to check if it's the same. Link to comment Share on other sites More sharing options...
King_DuckZ Posted May 29, 2012 Author Report Share Posted May 29, 2012 I get: Selector for workspace MyWorkspace: repository "default" path "/" branch "/main" checkout "/main" In fact I'm very confused. I did call cm mkrep Framework, so why do I get the default one? Link to comment Share on other sites More sharing options...
psantosl Posted May 29, 2012 Report Share Posted May 29, 2012 You did: cm mkrep cm mkwk the mkwk doesn't have an associated repo. Run: cm mkrep yourrepo cm mkwk wkname yourpath cm stb main@yourrepo and you're done. Link to comment Share on other sites More sharing options...
King_DuckZ Posted May 29, 2012 Author Report Share Posted May 29, 2012 Hi psantosl, I just tried it but it didn't work. I lost the output but more or less it said MyFramework didn't exitst, though if I did the cm mkrep MyFramework again it said the repository was already there. In the end I tried the following commands to make sure I'm starting from anew: [duckz@DUCKZ-PC plastic_repo]$ cd .. [duckz@DUCKZ-PC Develop]$ rm -rf plastic_repo/ [duckz@DUCKZ-PC Develop]$ mkdir plastic_repo [duckz@DUCKZ-PC Develop]$ cd plastic_repo/ [duckz@DUCKZ-PC plastic_repo]$ cm mkrep Framework The repository Framework for repository server DUCKZ-PC:8087 already exists. It seems like plastic is keeping some extra informations outside of the working tree, which I don't know how to remove. This also feels weird, as it probably means that even the following (untested) wouldn't work: mkdir test1 cd test1 cm mkrep myTest cd .. mkdir test2 cd test2 cm mkrep myTest Is there a tutoria for git/mercurial users learning plastic? I'm really willing to give plastic a try, but it seems to be very different from what I'm used to. Link to comment Share on other sites More sharing options...
psantosl Posted May 29, 2012 Report Share Posted May 29, 2012 You're confusing repositories with workspaces. A workspace is just the place where you work. The repositories are the places where the data is stored. In git/hg you're tied to one repository per workspace (more or less) which is rather inconvenient outside OSS world. Here the limitation doesn't exist. cm mkrep creates a repo rm -rf removes a workspace nothing to do with each other I'm afraid! Why don't you take a look at our quick start guide?? http://www.plasticscm.com/infocenter/quick-start.aspx It should drive you in the right direction Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.