What is your favorite new Selena feature?
I find it pretty difficult to actively find new cool stuff in Selena. The change logs are pretty condensed so I mostly discover things by accident while working on something.
So I would like to ask you:
What new feature do you like in Selena?
S.
Please sign in to leave a comment.
Background batch analyses are cool, as is the drag-and-drop move, but the real winner for me so far has to be "Shelve changes".
--Dave Griffith
Oh, new SVN changes panel is much better than that in 6.0.4 (one can see all submissions so far and not only his own local changes).
Also new debugger tabs (when one can see "Threads", "Frame" and "Watches" simultaneously) are very comfortable - in the past, I had to switch back and forth from "Frame" to "Watches".
I see mentions of the change list and the shelve changes, but I am assuming that is tied to some sort of version control, beyond IDEAs local VCS.
Is there anyway to get these to work on single machine? Where I am out right now, and because of my project and the environment it runs in(and the distribution process), I don't use any version control system.
I don't expect you to hold my hand, but if you have a hint that might point me in the right direction, or to let me know that it is not easily or realistically doable, I would definitely appreciate it.
I see mentions of the change list and the shelve changes, but I am assuming that is tied to some sort of version control, beyond IDEAs local VCS.
Yes, these features require and integrates with external version control systems, and with TeamCity.
Is there anyway to get these to work on single machine? Where I am out right now, and because of my project and the environment it runs in(and the distribution process), I don't use any version control system.
First the chiding: Coding without version control is like driving without a seatbelt. Drunk. And blindfolded. It's only a question of time before you regret it.
Next, the assistance: It's not rocket surgery to set up your own Subversion repository, although I'll admit I've never personally done it. If that doesn't thrill you, and you have the means, third-party management and hosting of Subversion repositories is available, cheap and easy. There's a bunch of providers, and most have single developer plans starting in the $7-$10/month range, often with something like Bugzilla or Trac hosting thrown it. I use cvsdude.org, and am very happy with them. I pay $22 a month (premium for https, unlimited repositories, 1Gig of storage, and a bunch of stuff that I haven't used yet), and was able to set up access in about two minutes total.
--Dave Griffith
--Dave Griffith
Absolutely ! That's exactly what I did couple of days ago - set up a Subversion on my laptop to be used only by myself.
.. 02/15/2007 19:49 app 02/15/2007 19:49 classes 02/15/2007 19:49 dist 02/15/2007 19:49 ejb 10/08/2006 14:37 16,282 EJB-3.0.ipr 10/10/2006 14:17 34,880 EJB-3.0.iws 02/15/2007 19:49 ]]> webIt's a free and very popular those days SCM system.
Very nice Subversion book is available online at http://svnbook.red-bean.com/nightly/en/index.html
Intellij help describes SVN integration at Help -> Version Control -> Using Subversion Integration
Using it is a pretty straighforward process (IDEA supports Subversion out of the box with "svn4idea" plugin)
(everybody is welcome to correct me if I'm wrong at some step)
1) Download Subversion from http://subversion.tigris.org/project_packages.html
For Windows it's http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe
2) After installing you'll have the "bin" folder where you've installed Subversion.
That's where all Subversion executables are. The one you'll be using 99% of the time is "svn".
3) I've provided a sample command-line SVN session below while marking the command I type in bold.
For every command XYZ you can always see it's help by running "svn help XYZ", like "svn help checkout"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Let's say D:\Projects\EJB-3.0 is your working project.
D:\Projects\EJB-3.0>dir
Volume in drive D is New Volume
Volume Serial Number is C041-3AF5
Directory of D:\Projects\EJB-3.0
02/15/2007 19:49 . 02/15/2007 19:49
2 File(s) 51,162 bytes
7 Dir(s) 14,508,235,264 bytes free
Creating new repository
D:\Projects\EJB-3.0>svnadmin create D:/Temp/SVN
D:\Projects\EJB-3.0>dir D:\Temp\SVN
Volume in drive D is New Volume
Volume Serial Number is C041-3AF5
Directory of D:\Temp\SVN
02/15/2007 19:49 . 02/15/2007 19:49 .. 02/15/2007 19:49 conf 02/15/2007 19:49 dav 02/15/2007 19:49 db 02/15/2007 19:49 2 format 02/15/2007 19:49 hooks 02/15/2007 19:49 ]]> locks
02/15/2007 19:49 234 README.txt
2 File(s) 236 bytes
7 Dir(s) 14,508,203,008 bytes free
Importing all project's files to it
D:\Projects\EJB-3.0>svn import . file:///Temp/SVN -m "Initial Import"
Adding EJB-3.0.iws
Adding app
Adding app\app.iml
Adding app\META-INF
Adding app\META-INF\application.xml
Adding ejb
Adding ejb\ejb.iml
Adding ejb\META-INF
Adding ejb\META-INF\persistence.xml
Adding ejb\META-INF\ejb-jar.xml
Adding ejb\src
Adding ejb\src\org
Adding ejb\src\org\genie
Adding ejb\src\org\genie\ejb
Adding ejb\src\org\genie\ejb\Counter.java
Adding ejb\src\org\genie\ejb\IUserManager.java
Adding ejb\src\org\genie\ejb\Person.java
Adding ejb\src\org\genie\ejb\ICounter.java
Adding ejb\src\org\genie\ejb\UserManager.java
Adding dist
Adding (bin) dist\genie-ejb.jar
Adding (bin) dist\genie-web.war
Adding EJB-3.0.ipr
Adding classes
Adding classes\test
Adding classes\test\ejb
Adding classes\test\web
Adding classes\production
Adding classes\production\ejb
Adding classes\production\ejb\org
Adding classes\production\ejb\org\genie
Adding classes\production\ejb\org\genie\ejb
Adding (bin) classes\production\ejb\org\genie\ejb\Counter.class
Adding (bin) classes\production\ejb\org\genie\ejb\IUserManager.class
Adding (bin) classes\production\ejb\org\genie\ejb\Person.class
Adding (bin) classes\production\ejb\org\genie\ejb\ICounter.class
Adding (bin) classes\production\ejb\org\genie\ejb\UserManager.class
Adding classes\production\web
Adding web
Adding web\src
Adding web\resources
Adding web\resources\index.jsp
Adding (bin) web\resources\liferay.ico
Adding web\resources\WEB-INF
Adding web\resources\WEB-INF\web.xml
Adding web\web.iml
Committed revision 1.
Deleting the project files to perform a clean checkout from repository
D:\Projects\EJB-3.0>cd ..
D:\Projects>rmdir /S /Q EJB-3.0
D:\Projects>mkdir EJB-3.0
D:\Projects>cd EJB-3.0
Checking out all project's files from repository
D:\Projects\EJB-3.0>svn checkout file:///temp/SVN .
A EJB-3.0.iws
A app
A app\META-INF
A app\META-INF\application.xml
A app\app.iml
A ejb
A ejb\META-INF
A ejb\META-INF\persistence.xml
A ejb\META-INF\ejb-jar.xml
A ejb\ejb.iml
A ejb\src
A ejb\src\org
A ejb\src\org\genie
A ejb\src\org\genie\ejb
A ejb\src\org\genie\ejb\Counter.java
A ejb\src\org\genie\ejb\IUserManager.java
A ejb\src\org\genie\ejb\Person.java
A ejb\src\org\genie\ejb\ICounter.java
A ejb\src\org\genie\ejb\UserManager.java
A dist
A dist\genie-ejb.jar
A dist\genie-web.war
A EJB-3.0.ipr
A classes
A classes\test
A classes\test\ejb
A classes\test\web
A classes\production
A classes\production\ejb
A classes\production\ejb\org
A classes\production\ejb\org\genie
A classes\production\ejb\org\genie\ejb
A classes\production\ejb\org\genie\ejb\Counter.class
A classes\production\ejb\org\genie\ejb\IUserManager.class
A classes\production\ejb\org\genie\ejb\Person.class
A classes\production\ejb\org\genie\ejb\ICounter.class
A classes\production\ejb\org\genie\ejb\UserManager.class
A classes\production\web
A web
A web\src
A web\resources
A web\resources\index.jsp
A web\resources\liferay.ico
A web\resources\WEB-INF
A web\resources\WEB-INF\web.xml
A web\web.iml
Checked out revision 1.
No local modifications are made yet
D:\Projects\EJB-3.0>svn status
D:\Projects\EJB-3.0>
Now I modify D:\Projects\EJB-3.0\ejb\src\org\genie\ejb\Counter.java..
D:\Projects\EJB-3.0>svn status
M ejb\src\org\genie\ejb\Counter.java
+ .. and commit the changes+
D:\Projects\EJB-3.0>svn commit -m "First Modification"
Sending ejb\src\org\genie\ejb\Counter.java
Transmitting file data .
Committed revision 2.
No local modifications again !
D:\Projects\EJB-3.0>svn status
D:\Projects\EJB-3.0>
D:\Projects\EJB-3.0>svn help checkout
checkout (co): Check out a working copy from a repository.
usage: checkout URL[@REV]...
If specified, REV determines in which revision the URL is first
looked up.
If PATH is omitted, the basename of the URL will be used as
the destination. If multiple URLs are given each will be checked
out into a sub-directory of PATH, with the name of the sub-directory
being the basename of the URL.
Valid options:
-r arg : ARG (some commands also take ARG1:ARG2 range)
A revision argument can be one of:
NUMBER revision number
'{' DATE '}' revision at start of the date
'HEAD' latest in repository
'BASE' base rev of item's working copy
'COMMITTED' last commit at or before BASE
'PREV' revision just before COMMITTED
-q : print as little as possible
-N : operate on single directory only
--username arg : specify a username ARG
--password arg : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--config-dir arg : read user configuration files from directory ARG
--ignore-externals : ignore externals definitions
D:\Projects\EJB-3.0>svn help commit
commit (ci): Send changes from your working copy to the repository.
usage: commit
A log message must be provided, but it can be empty. If it is not
given by a --message or --file option, an editor will be started.
If any targets are (or contain) locked items, those will be
unlocked after a successful commit.
Valid options:
-q : print as little as possible
-N : operate on single directory only
--targets arg : pass contents of file ARG as additional args
--no-unlock : don't unlock the targets
-m arg : specify log message ARG
-F arg : read log message from file ARG
--force-log : force validity of log message source
--editor-cmd arg : use ARG as external editor
--encoding arg : treat value as being in charset encoding ARG
--username arg : specify a username ARG
--password arg : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--config-dir arg : read user configuration files from directory ARG
D:\Projects\EJB-3.0>svn help add
add: Put files and directories under version control, scheduling
them for addition to repository. They will be added in next commit.
usage: add PATH...
Valid options:
--targets arg : pass contents of file ARG as additional args
-N : operate on single directory only
-q : print as little as possible
--config-dir arg : read user configuration files from directory ARG
--force : force operation to run
--no-ignore : disregard default and svn:ignore property ignores
--auto-props : enable automatic properties
--no-auto-props : disable automatic properties
D:\Projects\EJB-3.0>svn help delete
delete (del, remove, rm): Remove files and directories from version control.
usage: 1. delete PATH...
2. delete URL...
1. Each item specified by a PATH is scheduled for deletion upon
the next commit. Files, and directories that have not been
committed, are immediately removed from the working copy.
PATHs that are, or contain, unversioned or modified items will
not be removed unless the --force option is given.
2. Each item specified by a URL is deleted from the repository
via an immediate commit.
Valid options:
--force : force operation to run
-q : print as little as possible
--targets arg : pass contents of file ARG as additional args
-m arg : specify log message ARG
-F arg : read log message from file ARG
--force-log : force validity of log message source
--editor-cmd arg : use ARG as external editor
--encoding arg : treat value as being in charset encoding ARG
--username arg : specify a username ARG
--password arg : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--config-dir arg : read user configuration files from directory ARG
D:\Projects\EJB-3.0>
Well, I do have a version control system, that comes all the way from my days programing in COBOL(which I still do), but it is all manual; beyond what little bit was in place within the mainframe(which, ironically, is what my code goes through today for checkout(the entire EAR) and distribution).
In the case of my current JAVA system, I am the only programmer, designer, maintainer, support, etc., and have been so for years. Every time I get a backup assigned to me, something happens to them(nothing bad, they just end up getting moved to somewhere else).
However, based on your response and the one that follows, looks like I need to look into Subversion.
I will have to do it locally, since doing anything offsite, assuming I could get through the firewall(IDEA cannot get to the plugin repository when I am at work), would get me into more hot water; still waiting for the day I catch hell for using IDEA instead of WSAD and using Firefox instead of IE. :)
Thanks for the follow-up.
Wow Evgeny, and thanks.
That is more help that I was looking for or expecting, and it is much appreciated.
I am having some wisdom teeth extracted tomorrow, so, this weekend, I am going put your post to good use, since I am not going to be doing much else(and maybe it will take my mind off of the pain). At the very least, I think this will make it a lot easier.
Thanks!
You're welcome :) I'm sure you'll see Subversion is a very user-friendly system and there are lot's of people out there that will be able to assist you in any question (I still consider myself an SVN newbie - just used it for a couple of months in the past and now just installed it again).
Good luck !
Hello Dave,
In fact, we do plan to support changelists and Shelve Changes running over
Local VCS (that'll appear in the EAP in a few months, when the new local
VCS implementation gets stable enough).
--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"
Setting up a repository for your own private use is really simple, take a try :)
Basically you'll be able to create the repository with
svnadmin create "path where you want the repository to be created"
and will only need to modify a file to setup access rights.
If you're local admin on your machine, have a look also at TortoiseSVN