Does Plastic SCM work with (play nice) gitKracken? - gitkraken

evaluating if PSCM is right for my team. Team is concerned about changing how they work with code and are understandably reluctant to stop using GitKracken, artists want PLSCM and Gluon.
nothing. asking before buying.
na
na

I'm the founder at Plastic SCM, so I think I can give you a good answer about how we interop with Git.
Well, fist it is worth saying that Plastic is not based on Git. It is a full version control stack, we developed it from the ground up.
Our secret sauce is that we can do a bunch of things that Git can't, or at least that's what we try. Things like good handling of file locks, big files, ability to work not only distributed (Git style) but centralized, and a few others.
That being said, it is not our goal to have developers using tools like GitKraken on top of Plastic, because basically we develop our own GUIs, and most importantly, because GitKraken is heavily dependent on the underlying Git commands and libraries, which are not compatible with how Plastic works.
So: while it might take some time initially, we really prefer if developers try to use Plastic GUIs.
There is a workaround, though: every Plastic on-premises server can act as a Git server. So you can use GitKraken on top of Git, then push/pull to Plastic. Not our favorite way of working since then developers miss many of the advantages in Plastic.
Hope it helps and do not hesitate to ask more questions :-)
pablo

Related

What version control use if I'm the only developer?

I want to use some version control for my projects, but I'm the only developer, there is not others. I want to use my pendrive like repository because I develop in many different places(but the same project).
I only worked with SVN, but in that case, was not good, I think an DVCS was better.
But now, I really don't know what to use, if SVN is the best option. I've looked for another solutions like Mercurial, Git, and Fossil, but I don't understand the differences, and mainly, if they are the best options for my situation.
I need to know what is best in this case.
If you're the only developer, then the best version control is the one that you are most comfortable with. The goal of version control is to make your life as a developer easier and safer, so there's no point in fighting with a version control that you don't know.
However, if you want to learn how to use a new version control system, this is a great opportunity.
If you think that you're going to have more developers working on this project later, then you want to think about a robust solution like SVN.
I would definitely recommend Git. It is a little cryptic at times, but it seems to be/become the de-facto standard for most open source projects. It's very powerful and it'll enable you to work with the great service that is Github :)
There are good topics on SO that compare Git, Mercurial, svn, etc.
What is the Difference Between Mercurial and Git?
To me an important requirement was easy, free, private repositories online so I started to use http://Bitbucket.org They support both Mercurial and Git.
+1 to #dudemonkey sentences. Except last - tastes can differ. Even as sole developer, you can (and have) use best techniques - i.e you may have non-linear development (thus - branching|merging), refactoring of code, different targets. Try and select best for you solution.
Nobody mentioned Fossil SCM - small, portable app in one exe, with all basic features of DVCS, integrated Wiki and tickets - which you can have (with repo) in USB, for example for max mobility
In first place stay away from SVN or any other CVCS, they suck. To learn more about DVCS, I recommend the Eric Sink's Book, it's free: http://www.ericsink.com/vcbe/
As you plan to work on different machines, the best solution would be to have an online repository, I think it's more pratical and safer than the pendrive. Some of the most known out there are: https://bitbucket.org/, https://github.com/, https://launchpad.net/, http://code.google.com/projecthosting/. Remember that with a DVCS you don't need to be online all the time, you can commit locally and push to the server later. If your project is not open source, you should stick with BitBucket as it's the only one that offers free hosting for closed source projects.
If you really want to work just in the pendrive, don't leave the repository just in the pendrive. It's safer to clone the repository from the pen drive to the machines you will work. Then you Push/Pull to the pen drive's repository to synchronize.

Bazaar, Mercurial or other for single user version control? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
Which version control system would you recommend for:
single user
looking for simple, easy to use
generally small simple projects
working on windows
usually coding python
no server
Use would be more finding old code than complicated branching situations.
From other similar posts, Bazaar and Mercurial seem the best distributed version control systems for my needs. I'm somewhat leaning towards Bazaar as it seems simpler.
The main complaint I read about Baazar was that it was slow, but speed was to be improved in version 2, to be released this summer. The new version has not yet been released, but there is a 2.0.0rc2.
I'm wondering if anything has changed recently or if anyone has any strong feelings on the subject.
EDIT: After reading the responses and browsing some alternatives, I'm going with Bazaar, at least for the moment. For my needs, the products mentioned seemed rather similar. Bazaar has documentation specifically aimed at a solo developer and seems rather easy to use. Others seem more aimed at groups or those with central servers. Other systems may be as good, but I thought starting to use something was more important than spending time trying to find the perfect program.
Thanks, everyone!
(Should I have written this as an edit, an answer or a comment?)
If you're just single developer working on small projects, any version control system should be fast enough.
I'm a Mercurial developer myself and will of course recommend that :-) I like how Mercurial has one central concept: the changeset graph. The graph resides inside a repository (a clone). You can have several lines of development in the same clone. This can be in the form of multiple heads, perhaps marked with the bookmarks extension or as named branches. You can also use several clones to keep things separated, or you can go back and forth: it is easy to separate a combined clone (use hg clone -r REV to obtain part of the revision graph). See this blog post for pretty pictures.
For Windows (and other platforms too) you have TortoiseHg, which gives you a very nice graphical interface. TortoiseHg also integrates with many excellent plugins for Mercurial, in particular the record extension, which lets you pick out individual changes from a file when you commit. Using that, you can edit several files, and then commit those changes as several independent changesets.
Finally, you should also know about Mercurial: The Definitive Guide, the free online book about Mercurial.
Bazaar is very good for your needs, and I'm doubt you found speed issues with your projects. Bazaar has very nice GUI front-end called Bazaar Explorer which I'd recommend over TortoiseBzr. (Bazaar Explorer bundled into standard 2.0 installer now.)
Of course if you choose Mercurial you don't lose much.
So you'd better test one and another and make your choice. Every zealot will recommend you his favorite.
If you're a Windows user, nothing IMO can beat TortoiseSVN in terms of usability and ease-of-use.
Definitely Subversion....
It's free, very very easy to set up and use, doesn't require a server because it can just access the local filesystem, and you can find loads and loads of documentation and help if you get stuck because I think there are far more people who use SVN than bazaar or git for example....
You can just download TortoiseSVN (http://tortoisesvn.tigris.org/) en start using it....Nothing else is required for getting started because tortoisesvn has subversion built-in I believe....
I've done some playing with all of them.
The key thing that has attracted me to Bazaar is its flexibility.
Want to operate in centralized mode (ala SVN)? You can do that. Want to operate in distributed mode (ala Mercurial or git)? You can do that.
And here's where it gets better: you can do both. Say you're working with a guy that came over from SVN and he just doesn't like the distributed concept one little bit. Fine. Let him work in centralized mode while the rest of the team works in distributed mode. If he's away from the central repository, he can even take his checkout offline and do offline commits while he's gone. Then he can commit them all when he gets back.
While some of the other systems have ways to approximate different models, none seem as committed to flexibility as bazaar.
I have used SVN, Git and Bzr quite extensively on various different projects. I am currently using Bzr on a single user project and it is very easy to set up and use. No need to set up a server and comes with TortoiseBzr which works well, it may not be as feature complete as TortoiseSVN is but for a one-man project you should have everything you need. There are a few things missing such as the ability to Tag revision in which case you need to resort to using the command line interface. I considered Mercurial about a year ago, but I haven't used it in a real-world situation yet so I wouldn't be able to compare. I decided against it because TortoiseHG didn't seem very mature at the time, I expect it will have improved since then.
I quite like darcs, it uses something called patch theory which is, as far is I know, unique in version control software.
I have been using Bazaar for a while and was pretty happy with it. With all the hype going on about git, I gave it a try. And even though it has pretty complex concepts, I can only say that it was worth the switch. I now use it for all my projects. No matter how small. And I think TortoiseGit has become good enough to be usable.
I can see the following good points about it:
It's fast
Branching and merging is so simple you could even say it's fun
It's got funky commands I haven't seen anywhere else (f.ex.: stash and rebase)
It's hyped. Consequently the community is quite active and you can find a lot of material on it
You can grab a copy of gitorious to manage your projects privately
Some things I don't like as much:
branch display in gitk "feels" strange to me
I use git and it works great for me. I use msysgit on Windows.
I will recommend Git always. It is fast, doesn't need server, branching and merging is excellent. For Windows you need to get MsysGit.
Mercurial is also very good with a bit easier interface for user.

Learning version control for a college freshman

I'm a college CS freshman who wishes to learn a version control system well. Currently I'm looking at Subversion, Perforce, and Surround SCM.
I would be integrating the system with Eclipse, on a Linux platform. The code involved would mainly be C++, Java, and LaTeX (which I'll be using Eclipse as well).
Most probably I'll be the only user, but the advantage of SVN is that it is open source, while the other two are proprietary. I've heard a lot of good testimonial on TortiseSVN, but since I'm using Linux, I'll be missing out on that.
EDIT: Thanks for all the answers. Of course, I am open to any other version control systems as well. I will be checking out Git and Mercurial.
If you're learning version control systems, you would definitely do well to consider one of the newer "distributed" version control systems such as Git or Mercurial. By limiting your scope to the previous generation of tools as you mentioned, you will be missing out on what (some) people are really using today.
For learning a system, I probably wouldn't recommend choosing a commercial offering. You will get far better support and documentation, for free, with an open source solution.
If those are your only options, definitely SVN. That's the one (from that list) that real people use in the wild.
Honestly, though, learn a DVCS. Git, Mercurial, darcs, one of them.
If you're going to be the only one on a project, definitely you should check out SVN. Get Subclipse, an Eclipse plugin for Subversion, and get used to that. Then, move on to other version control systems once you feel comfortable.
I'd like to second (or third) those that suggested Git or Mercurial (or Bazaar). Distributed version control systems aren't just good for projects with multiple contributors; I use Git for any and all projects I start, even if they're just throw-aways. Basically, your development folder is your repository - It's portable, and it's easy to add more contributors and move to a more traditional centralized workflow later on.
I recommend Git especially because it has a bit of a steep learning curve, but it has taught me so much about project management, revision control, how to merge and patch files, how to read 'diff' output, etc. It really lets you get down to the fine grained details of version control.
You might find Perforce's whitepapers worth reading, for example High-level Best Practices
in Software Configuration Management.
SVN is very easy to learn. For those people who do use Windows, the GUI version is great.
Even if you are running Linux, I would still suggest learning it because it is widely used in places such as Google Code, Python, Wordpress, etc...
Bazaar is absolutely awesome for single-person, serverless development. It takes an entire five minutes to set up, and it's working immediately. It has the power of large VCS's ... but it's easy enough to use on your own.
I've heard Git and Mercurial are right along the same lines ... but I've a=only used Bzr.
I'd recommend Subversion, simply because of its pervasiveness in open source projects. There's definitely a lot of opportunity to put your Subversion knowledge to use in open source projects, and if you do, you'll learn a lot about coding, working as a team, and about using a VCS properly in a team (which is half of learning to use a VCS, and is the hard part because you can't learn it very well on your own). Fewer open source projects use proprietary VCSs, which means you'll get less of an opportunity to use them in the real world unless you're working specifically with friends or as a job. I haven't used the other two you mentioned, but I have no complaints about Subversion, it's quite straight-forward to use.
I'd also like to recommend a distributed VCS, such as git. With a distributed VCS, since every participant in a project has a complete copy of the source repository, and has complete control over their own copy, it means that you're given greater flexibility to use the VCS capabilities. You'll find that you have the freedom to commit as often as you want, and create new branches whenever you want, which is great when you're making changes to code and you want the ability to go back to an old version if necessary. A distributed VCS lets you use the VCS as a tool to help your coding, rather than simply as a way of storing and sharing your code with others. It's also very easy to set up a new repository in a distributed VCS. With git you just run git init and it'll set up version control in the current directory. How easy is that?

Alternatives to CVS where branching is important

Somewhat stuck trying to find a newer/better SCC system for my employer. My personal darling is SVN as it's compatible across a good swath of machines and relatively fast, but with past/present experience, it's not as friendly/easy to do branching.
The needs assessment is as follows:
Must be easy to use (CVS is considered easy)
Branches must be first class citizens
Prefer a mechanism like SVN's external property for repositories
Must be multiple OS friendly (linux, unix, Mac, MS Windows)
Proprietary/Commercial might be all right depending on license costs
Git is out as an option as some of the machines are running Vista and it's been a nightmare getting any developer tool to function with some sense of stability on that OS.
I'm also looking at Mercurial but not sure yet if it's going to work right for how the company operates.
I'm biased here, but take a look at Plastic SCM. It's easy to use (much easier than CVS) and it's all about branching.
If you're looking at Mercurial or GIT, maybe you're interested in distributed, aren't you? If so, plastic is still an option since, AFAIK, is the only distributed commercial one together with BitKeeper.
SVN is much easier with branching now that mergeinfo properties have been implemented (since v1.5). You just branch and merge away, and it remembers which revisions of which branches have been merged where.
Obviously I'm being a little blasé, but it does make svn worth another look if branching was your main issue with it. No longer do you have to keep text files around with notes on which trunk revisions you've merged into your branch. You just say "merge trunk". Then, you can "reintegrate" a branch automatically
Although it's worth noticing that you need to upgrade your svn server to 1.5 for this to work, the clients are backwards compatible with older servers, but you won't get the new functions. Back up your repo just before you upgrade, obviously.
Oh, and I believe 1.6 is out now, so you may as well jump straight on that. Of course TortoiseSVN (and VisualSVN for Visual Studio users) goes along with it.
My company uses Perforce and I've had a reasonable time with branches, and integrating changes between branches. It will even let you integrate between files that didn't share the same root, if you absolutely insist on it.
Using TortoiseSVN (and likely many other clients as well that I have no experience with), creating branches is a piece of cake, and merging them with other branches or back into the trunk is only slightly more difficult. If you have not tried branching/merging since 1.5, then SVN definitely warrants another look!

Source Control Beginners

What would be the best version control system to learn as a beginner to source control?
Anything but Visual Source Safe; preferably one which supports the concepts of branching and merging. As others have said, Subversion is a great choice, especially with the TortoiseSVN client.
Be sure to check out (pardon the pun) Eric Sink's classic series of Source Control HOWTO articles.
I'd suggest you try Subversion, for example with the 1-click SVN installer. Try searching SO for "Subversion", and you'll find loads of questions with answers that point to good tutorials.
Good luck!
I'd go straight for Git. I've used subversion before, but always felt like I was doing it wrong. Git made sense from day one.
Useful resources:
Linus Torvals on Git
Scott Chacon "Getting Git"
There are a few core concepts that I think are important to learn:
Check-ins/check-outs (obviously)
Local versions vs. server versions
Mapping/Binding a local workspace to a remote store or repository.
Merging your changes back into a file that contains changes from
others.
Branching (what it is, when/why to use it)
Merging changes from a branch back into a main branch or trunk.
Most modern source control systems require some knowledge of the above topics and should help facilitate you learning them. Then you have distributed source control, which I don't have any experience with but is supposed to be fairly complicated and may not be suitable for a beginner.
Subversion is great because it has all of the modern features you'd want and is free.
Git is also becoming an increasingly popular option and is another free or very low cost alternative to Subversion. Knowledge regarding the concepts of branching and merging become critical for using Git, however.
You can use unfuddle as a free and easy way to experiment with both Git and Subversion. I use it to host a couple of subversion repositories for some side projects I've worked on in the past.
I'm not and advanced source control user, but I'm learning. Here is my experience with source control products:
A long time ago, the company I was working for at the time decided to use source control. They introduced the concept to developers and got eveyone willing to give it a try. They chose to use PVCS, and implemented it. Before too long, developers would have to coordinate to lock/unlock modules and objects and we really didn't see much benefit.
A few years later, I was playing around with making an open source project and at the time rubyforge was offering CVS repositories. I tried it out and it was marginally better than PVCS. Granted I was the only one using the repository. I did however become frustrated when I tried to rearrange the structure of my files because I didn't like the way I had initially imported them. It didn't really work out in CVS.
A few years after that I was working on another personal project and my web hosting provider offered easy to setup Subversion (SVN) repositories. It took me a little bit of research to get it up and running correctly, but once I got past the initial learning curve, I liked it.
Not long after that I realized that I liked having source control and that my current job didn't have it. So I evangelized, and after a long period of time, my team implemented Source Safe because we work in Visual Studio and are generally a Microsoft shop. I was eager to use it, but before long I found that I was losing files and that Visual Studio was putting things in the wrong place and that I'd work on a project for a while and then go to export my work to another location and find that it either wouldn't export or would only export some of the projects in a solution. This made me realize that even though I thought I was using a "version control system", the copy of the code that was most secure, robust and complete was my working copy. The exact opposite of what source control is supposed to do.
So last week I was so fed up with Source Safe that I went searching. After looking into a few solutions, I decided to try git. I won't say it's all been roses, since I have again had some learning curve to get it to do what I want it to do, However, I have liked it enough to convert all of my work and personal projects over to it. One of the really nice things about it is that I don't need a centralized repository so I can use it without going through a ton of red tape at work to get it installed.
So in short I would reccommend git, I use Mysysgit in windows and it has the added bonus of giving me a bash shell. On Linux you can just install it from your package manager. If you don't like git, try subversion. If you don't like either of those you probably won't like CVS or PVCS either. Under no circumstances try Source Safe, it's awful.
I found http://unfuddle.com saved me messing about with installing SVN or git. You can get a free account in there and use either of those - plus you can use your OpenID there.
Then you avoid having to mess about setting it up right and focus on how you're going to use it!
Vault from SourceGear.com is superb. It is free for single users and provides a superb VS 2005/2008 interface. I love it!
rp
#Ian Nelson:
I agree with you that Source Safe is bad as a source control system, but keep in mind that using Source Safe is a lot better than "carrying around floppy disks" as Joel Spolsky said.
For a beginner it might not be a bad idea, since the cost of having no source control at all is a lot higher.
Each tool has it's strengths and weaknesses. It's very much a question of what your requirements are. Unfortunately with this issue, like many others, it's often not the best tool that is selected but the one that someone is familiar with. For instance, if you don't require many branches and your team is small and local, almost any vcs will do the job (except SourceSafe). Things change if you need branches (which almost by necessity means you also need to do merges), your team is distributed, you need advanced security (subcontractors are not allowed to entire source tree), task tracking, etc. There is also the question of cost in three different ways: cost of licenses, cost of maintenance (some tools are so complicated that you in practice need someone just to control the repositories) and cost of training.
Therefore suggesting one tool over another is like suggesting what would be the best programming language.
Just some pointers:
StarTeam is the easiest of the tools
I have used. It required very little
training. I got a one-day training
since I was to be the maintainer.
This maintaining took me less than 30
minutes per week. Users I "trained"
by writing a two-page manual and
after that I had very few questions
to answer.
Continuus was the other end of the
scale as far as ease of use is
concerned. On the other hand task handling was great and it offered good support for release management. Trouble is, even as a release manager I never thought ease of making releases (it was once you learned how, but that took a considerable amount of time) should be more important than the daily work that developers do.
Merging and branch creating differs
wildly between tools. Some tools make
this simple, like git and ClearCase
(although the latter is very slow)
some basically force you to do the
merge by hand. If you need to do
merges a lot, the cost can get high.
ClearCase was also expensive in all
three categories mentioned before
(although it has to be said we used
all the advanced stuff which isn't
necessary). Git on the other hand
lacks a good UI and some of concepts
differ from what you might be used
to. Git's security features are also
lacking (gitosis addresses some
issues but not all).
Most tools I have used are also quite
slow. Tools like PVCS/Dimensions was
just slow, no matter what (basic
things like opening a directory in
the repository), some very slow in
more specific ways (like ClearCase).
From the tools I have used I would select StarTeam if your developers are not very experienced (and if you don't mind paying the license, which is quite expensive) and git if you have some experienced vcs guys onboard who can set up the environment to other guys. Mercurial also looks like an interesting competitor and seems to have slightly better UI's.
Continuus, PVCS/Dimensions and ClearCase are just too slow, too complex and too expensive for almost any project. If someone insist on selecting one of these, I would go for ClearCase.
I haven't used Subversion which many seem to like (yet, I have a feeling this is about to change in the near future) so can't comment how it compares to the other tools I have used (usually as a build and/or release manager).
As for the first tool to choose, problem with Git, Bazaar and Mercurial is they are distributed vcs's. This is different from the traditional server-client model where you have a central repository. For just learning the stuff I would recommend also reading about the concepts. Branching for instance is something that you might not understand correctly just by trying yourself (there are different branch strategies for different situations). Plus it is very different if you are the only one accessing the repository, merge conflicts for instance wouldn't be a problem (you might get to see them but you would easily also fix them since you know the code in both branches). Of course you would learn about check outs, check ins, and such but I don't think these issues are particularily difficult in the first place.
Added problem with vcs's is that they tend to use different terms. In StarTeam which is otherwise easy to use they for some reason insist on using the terms "check out" and "check out and lock". The latter is what most people think the first does. There is a reason for this (you can edit files even if you don't have an exclusive lock), but it would still make much more sense to call these "Get" and "Check out" to avoid confusion.
Anything, but I would learn a modern system like git or subversion myself. My first VCS was RCS, but I got the basics down.
Well, if you are just wanting to learn on your own, I would say you should go with something free, like subversion. If you are a company who has never used source control before, then it really depends on your needs.
My first exposure was CVS with WinCVS as a client. it was horrid. Next was Subversion, with TortoiseSVN and Eclipse's integration. It was intuitive, and heavenly. I think that using CVS with TortoiseCVS and Eclipse's would be nice as well, though I prefer the way SVN handles revisioning. The entire repository is versioned with each check in, not individual files.
I'd also recommend Subversion. It does not take too long to set up, it is free, and there is a really good book available online that goes over the basics as well as some advanced topics: http://svnbook.red-bean.com/
Subversion with tortoisesvn. (tortoisesvn because you can see a lot of what goes on visually and will provide a good jumping off point for the command line stuff. ) There is tons of documentation out there and most likely you will see it at least one point in your career. Almost every company I have worked for and interviewed with runs SVN.
If you're looking to learn a commercial product while getting started Perforce provides a free client and server, with the server supporting two users and five client workspaces.
At my previous place of employment it was used religiously not only for code by our programmers, but for art assets and game levels, and my own documentation.
Subversion is good place to start with. It is very stable and modern version control system.
Best online resource to start learning about Subversion would be Version Control with Subversion. There are lot of choices as far as server and client softwares are concerned. I personally prefer (for Windows environment).
VisualSVN server
TortoiseSVN shell-integrated client and
AnkhSVN Visual Studio Subversion Add-On
Again, with Subversion there are lot of options available. Also, it is a continually evolving version control system (unlike outdated SourceSafe). It could be easily integrated with numerous automated build tools (CruiseControl, FinalBuilder) and bug/issue tracking systems (JIRA).
If you are looking for state-of-the-art version control systems, go for Git(developed by Linus Torvalds). But if you are totally new to version control systems, I would suggest start with subversion.