Commit Graph
97049 Commits
Author SHA1 Message Date
anna 5f0b7626de accept inline on method reference (IDEA-102845) 2013-03-11 14:53:33 +01:00
Alexander Zolotov f6806ebdf0 #EA-44604 fixed 2013-03-11 17:15:01 +04:00
anna 7fc31b8005 move: suggest to leave in same source root when moved via d-n-d (IDEA-102563); do not adjust twice 2013-03-11 14:06:55 +01:00
Bas Leijdekkers 2817b7720e fix brainless usage of modification stamp where time stamp should be used 2013-03-11 13:42:32 +01:00
Bas Leijdekkers 4a3b65d95b simplify inspection warning and cleanup 2013-03-11 13:39:06 +01:00
irengrig a8f2e8c9b9 IDEA-102846 Subversion: show only 1.6 and 1.7 formats options for checkout and format change 2013-03-11 16:27:45 +04:00
irengrig fb097e90e7 Subversion: against NPE in IdeaSvnkitBasedAuthenticationCallback$SSLServerCertificateAuthenticator.acknowledge 2013-03-11 15:51:44 +04:00
irengrig 790c1133c0 Merge remote branch 'origin/master' 2013-03-11 15:44:16 +04:00
irengrig 50ad888283 Subversion: commit with command line to https:// with client certificate supported.
code slightly refactored to be more readable;
tests for commit run locally for http, https
SSL client certificate dialog to be initialized with stored client file value

code notes: 1) now we pass "is password" parameter read from command line err output to switch between password and client certificate types
2) we store client certificate path in servers file - as by spec, but svnkit doesn't do that somewhy
3) we also store client certificate passphrase in Subversion native format, overriding svnkit behaviour, which seems to be wrong (realmstring -> client certificate path)
2013-03-11 15:41:19 +04:00
anna edb6daaf61 Merge remote-tracking branch 'origin/master' 2013-03-11 12:31:21 +01:00
anna 21afdb533e eclipse: save jdk in .eml file in case it is modified in IDEA and initial .classpath entry is untouched (IDEA-88112) 2013-03-11 12:29:06 +01:00
anna 436f2cc351 lambda: primitive array type constructors fixed (IDEA-102836) 2013-03-11 12:29:05 +01:00
Alexey Kudravtsev 0a2127b629 diagnostics 2013-03-11 15:24:49 +04:00
Alexey Kudravtsev 8ea69408cf diagnostics 2013-03-11 15:24:48 +04:00
Alexey Kudravtsev 8ed81bb123 diagnostics 2013-03-11 15:24:47 +04:00
peter 7f31bbcbee IDEA-102817 Accept completion variants by closing parentheses/brackets 2013-03-11 11:44:06 +01:00
anna 6409f9f6a3 eclipse: store package prefix in .eml (IDEA-100086); jps: update content entries after .classpath was read to make sure test folders/package prefix set up correctly 2013-03-11 11:35:58 +01:00
peter 8e0cdc7f16 IDEA-102818 Accept Java name completion suggestions by Enter 2013-03-11 11:26:46 +01:00
peter 83f80b8851 make semi-focused autopopap selectable by enter in tests
starting to slowly remove old preview code
2013-03-11 11:26:45 +01:00
anna cabe76e28f eclipse jps: read exclude folders from .eml file (IDEA-102652) 2013-03-11 11:03:59 +01:00
anna 0d2d8b85e1 junit: mark fields annotated as @ClassRule as used (IDEA-102491) 2013-03-11 11:03:59 +01:00
anna 721ed861ee javafx: open in scene builder 1.1 (IDEA-102820) 2013-03-11 11:03:58 +01:00
Max Medvedev 0b1285425c EA-42510 - SOE 2013-03-11 09:56:32 +04:00
Vassiliy Kudryashov ae06485e3f IDEA-101196 Find: can't exclude 2013-03-11 00:43:37 +04:00
Dmitry Jemerov 2226df4064 https://github.com/JetBrains/intellij-community/pull/46
(cherry picked from commit 75588fa)
2013-03-10 13:03:15 +01:00
peter eea6709255 p4: use file system time stamp instead of a random idea-specific one 2013-03-10 12:07:25 +01:00
peter fd0506214f recursion weigher should come after stats+prefix in java completion 2013-03-10 12:07:25 +01:00
peter 07e0385eca local variables should be preferred over factory methods no matter the name end matching degree 2013-03-10 12:07:25 +01:00
peter bbfffa7865 allow empty weigher arrays 2013-03-10 12:07:24 +01:00
peter 34ca5e4467 don't depend on prefix in java completion sorting 2013-03-10 12:07:24 +01:00
Kirill Likhodedov 618c1cdaf8 [git] IDEA-101668 Fix Git log for detached HEAD
`git log --branches --tags --remotes` doesn't count the current HEAD
if it is detached. To fix it, show the log from the HEAD:
`git log HEAD --branches --tags --remotes`
2013-03-09 21:27:47 +04:00
Kirill Likhodedov 0972978ca8 [git] Pull: remove fetch+merge hack used for JGit
JGit is no more used for HTTP operations.

This fixes IDEA-101902: git pull will be called only for the
chosen remote.
2013-03-09 21:15:54 +04:00
Kirill Likhodedov b200615c29 [git] Push dialog: for new branch show commits which are not pushed yet
Show all commits that are in the given branch,
but not in any remote branches in the given remote:
`git log new_branch --not --remotes=origin`
This fixes IDEA-83227.
2013-03-09 21:15:53 +04:00
Eugene Zhuravlev 85074a96cf external build: configurable log dir; build log default location moved under system/log directory 2013-03-09 17:54:21 +01:00
Kirill Likhodedov 51698ad84d [git] Disable JGit usage for HTTP connections
* Keep the code under a Java system property until native Git support
  for HTTP connection is tested.
* Remove NetrcData since it is not needed anymore.
2013-03-09 20:49:19 +04:00
Kirill Likhodedov 93ac1236e1 [git] Set minimal supported Git version to 1.7.1.1
This one is the first Git version which supports GIT_ASKPASS.
2013-03-09 20:49:16 +04:00
Kirill Likhodedov a1c70f5c2e [git] Better "unsupported Git version" notification
* Improve the notification format.
* Add links to the Settings and to git-scm.com.
* Fix notification group: it is important one.
2013-03-09 20:49:15 +04:00
Kirill Likhodedov 296555274e [git] Implement ability to use the native Git for HTTP(S) connection
Use native command line Git for HTTP connections via GIT_ASKPASS
environment variable, to be able to get rid of the JGit library.

Method description.
The communication logic is very similar to what is already
implemented for SSH connections.
* Define the GIT_ASKPASS environment variable pointing to a script
  generated by the ScriptGenerator.
* When Git requests username and/or password for an HTTP connection,
  it calls the script defined in GIT_ASKPASS.
* The script starts the Java application GitAskPassApp and passes the
  Git request to it as command line arguments. Git process waits for the
  app to return user credentials to the app's stdout.
* GitAskPassApp requests the credentials via XML RPC from the main
  IDEA instance by calling correspondent methods of the
  GitAskPassXmlRpcHandler.
* Before Git command is called, a GitHttpAuthenticator is registered in
  the GitHttpAuthService to receive any XML RPC requests about HTTP
  authentication.
* Once the XML RPC request is received, the GitHttpAuthenticator
  either takes the password from the password safe, or shows a prompt
  to the user in a modal dialog.
* Response is provided back to the GitAskPassXmlRpcClient, which returns
  it to the GitAskPassApp, which in turn returns it to the Git process.

GitHttpAuthenticator details:
* The key for password safe is url + login (see makeKey()).
* If password is asked, then the URL contains the login inside URL,
  and the key is ready.
* If username is asked the key is constructed and is searched for in
  the settings (GitRememberedInputs).
* If no username is specified in the URL, Git queries for the username
  and for the password consecutively. In this case to avoid showing
  dialogs twice, ask for both credentials at once (AuthDialog) and
  remember the password to provide it to the Git process during the next
  request.
* We can't store the credentials enter by user in the settings and
  the password safe right after they have been entered, because user
  can enter incorrect credentials.
  Therefore, listen to the Git process output
  (GitHandler#addAuthListener) and analyze whether authentication
  was successful or failed. If it was successful, ask
  GitHttpAuthenticator to remember the correct credentials, otherwise
  forget them (since they could have been taken from the password safe,
  not from the user).
* Because of this, all other data (url and login, or url with login
  if the password was requested) is saved to the instance fields.

This change fixes all issues opened because of JGit problems:
* authorization issues: IDEA-97178, IDEA-102201, IDEA-100617,
  IDEA-98189
* connection and proxy issues: IDEA-83984, IDEA-92519, IDEA-96205
* IDEA-77411 self-signed server certificates (although we can provide
  more user-friendliness by proposing to set http.sslVerify to false
  in the UI).
* IDEA-100096 client SSL certificates.
* other: IDEA-78744, IDEA-77992, IDEA-76982, IDEA-78310, IDEA-86083,
  IDEA-92163, IDEA-94167, IDEA-99159, IDEA-100097

Known drawback:
No retry. If user enters incorrect credentials,
he will see the failure notification and will need start operation again
to supply correct data this time.
2013-03-09 20:49:12 +04:00
Kirill Likhodedov bc96127b57 [password] Preselect "remember password" in password prompt dialog
Users usually want to remember password.
If not, they can turn the checkbox off.
2013-03-09 20:49:10 +04:00
Kirill Likhodedov b489f0e08b [git] Refactor git-ssh architecture: generify
Rename GitSSHService to GitXmlRpcHandlerService and let it be the base
abstract class parametrized by the actual GUI handler.
Move SSH-specific code to the first implementation: GitXmlRpcSshService.
2013-03-09 20:49:08 +04:00
Kirill Likhodedov cd9ebaa807 [git] Refactor-simplify git-ssh architecture
Remove one more abstraction: GitSSHService.Handler interface.
Move some javadocs to the only implementation: GitSSHGUIHandler.
2013-03-09 20:49:06 +04:00
Kirill Likhodedov 978e16ba02 [git] Refactor-simplify git-ssh architecture
Remove GitSSHIdeaService and move everything to GitSSHService.
There are no other implementations, and none is planned.
2013-03-09 20:49:04 +04:00
Kirill Likhodedov 553d2bd55c [git] Detect remote protocol from the url
* Clone, fetch and ls-remote are trivial: just pass the url parameter.
* Pull: modify the method signature, since it can return pull or merge
  handler depending on the situation. For merge url is not needed.
* Standard Push (GitPusher):
  - simplify the logic by taking the first url
    instead of iterating over all of them,
    because we don't support pushing to several urls very well anyway.
  - report error if there are no push urls: GitPusher shouldn't be
    called in this case at all.
* Push when remote branch is deleted (GitDeleteRemoteBranchOperation):
  same as for the standard push: take the first url,
  report error if there are no urls defined for the remote.
2013-03-09 20:49:03 +04:00
Kirill Likhodedov b2b8f2f957 [git] Change GitHandler#setNoSSH() to setRemoteProtocol()
* Set remote protocol to null by default => safely remove all 82 calls
  to setNoSSH.
* For remote operations (pull, push, fetch and clone) set the protocol
  to SSH (HTTP is handled separately for now).

This is a preparation for working with HTTP via native Git.
2013-03-09 20:49:00 +04:00
Kirill Likhodedov eb3814b0e6 [git] Fix javadocs
* Remove obvious javadocs.
* Move lockingCommand javadoc to the public method.
2013-03-09 20:48:56 +04:00
peter b64e389a31 don't clear dom/sem on low-memory events when it's needed for another dom/sem. Otherwise all the needed elements will be calculated and immediately cleared forever. OOM might be a friendlier alternative in this case (IDEA-102582, IDEA-97337) 2013-03-09 17:47:02 +01:00
peter 10b3155ce2 there's no need to load dom stubs for already parsed XML file (IDEA-102582) 2013-03-09 17:23:28 +01:00
Konstantin Bulenkov a902db5128 ant icons update 2013-03-09 17:01:25 +01:00
irengrig 72d6ecd872 1 modified error message so that it mentions SSLv3 and TLSv1
2 open popup message only for frame, not when in dialogs
IDEA-102758 Subversion: SSL: Repeating error when specifying wrong SSL protocol
2013-03-09 13:51:51 +04:00
irengrig 7a4ef64d2d Merge remote branch 'origin/master' 2013-03-09 11:44:22 +04:00