Commit Graph
117899 Commits
Author SHA1 Message Date
anna 835549ca5f escape initializer text for quick javadoc (IDEA-114911) 2013-10-21 18:34:57 +02:00
anna d86e31fff5 testdata for IDEA-114894 2013-10-21 18:34:56 +02:00
anna 026f9116f1 scopes order: do not override stored order (IDEA-46994; IDEA-115020) 2013-10-21 18:34:55 +02:00
anna b17024ac83 skip sonar natures (IDEA-114957) 2013-10-21 18:34:54 +02:00
Andrey Vlasovskikh 4742432ca4 Added python-helpers to .gitignore 2013-10-21 20:08:53 +04:00
Dmitry Jemerov b397fd55be support and instructions for building Python plugin from command line 2013-10-21 18:06:39 +02:00
Dennis Ushakov 0ba98604c0 load namespaces for document even if present in tag as they may provide default namespace
#WEB-7228 fixed
2013-10-21 19:51:44 +04:00
Aleksey Pivovarov 01e97b816a Github: add information about exception context
prevent confusing "Error: 404: Not Found - Not Found" error messages
2013-10-21 19:41:22 +04:00
Dmitry Jemerov 9da662fee2 don't fail community plugin build if we don't have help 2013-10-21 17:35:00 +02:00
Vladimir Krivosheev ae8bbe6dd1 if sub server cannot be bound, log it as warning 2013-10-21 17:13:19 +02:00
Vladislav.Soroka 3c0f475294 Merge remote-tracking branch 'origin/master' 2013-10-21 19:09:39 +04:00
Dmitry Jemerov d0448ed0d0 correctly handle internal structure of .tar.gz 2013-10-21 17:08:53 +02:00
Vladislav.Soroka 4ec818d0bc IDEA-115009 Gradle: Invalid DSL processing for custom maven repo 2013-10-21 19:08:33 +04:00
Kirill Likhodedov 136a3efde0 [log] Store the number of recent commits to load in the settings
* Instead of hardcoding 1000, store the number in the VcsLogSettings.
  Maybe it will be exposed in the UI to let users customize this value.
* Make VcsLogProvider.readFirstBlock() accept the number of commits
  as a parameter instead of taking the stored value: sometimes we
  will need to load more than defined in the settings.
2013-10-21 19:07:58 +04:00
Konstantin Bulenkov 4675b0fe32 backspace doesn't work on Mac 2013-10-21 17:05:01 +02:00
Dmitry Jemerov a183547c15 distinct name for welcomeCaption.png in community resources (even though it's not used) 2013-10-21 17:02:04 +02:00
Dmitry Jemerov a106358ba4 use .tar.gz distribution of ideaIC as dependency 2013-10-21 16:53:04 +02:00
Sascha Weinreuter cb41e2448a Merge remote-tracking branch 'origin/master' 2013-10-21 16:35:21 +02:00
Sascha Weinreuter 7ec4bb17c8 Merge remote-tracking branch 'origin/master' 2013-10-21 16:32:33 +02:00
Dmitry Jemerov 46ac22c347 move testdata for env tests back to professional repo 2013-10-21 16:31:53 +02:00
Dmitry Jemerov 31f9f52464 delete duplicate app info file 2013-10-21 16:29:51 +02:00
Sascha Weinreuter e61f000880 IDEA-115187: Support Saxon-specific XSLT extension functions 2013-10-21 16:14:33 +02:00
Vassiliy 55378a0db4 Lens mode (speed-up) 2013-10-21 17:49:04 +04:00
Kirill Likhodedov 582fce20ba [log] Introduce filtering
I. Summary

We are able to filter graph by branches: not-wanted branches will be
just hidden with all their commits (unless they belong to a branch
that is to be shown).

We are not able to filter graph by other details yet: filtering, say,
by user can make "holes" in the graph, and we are not ready to
support this now.

Therefore, if user filters just by branch, we continue to show the
graph to him, but if he switches on a filter which is not supported
by graph (user, full-text), we turn the graph off by substituting the
TableModel with NoGraphTableModel which just shows commit subject in
the first column.

II. UI

Copy the same UI as it were in the old Git Log: a text field for
full-text search, popup menus for filtering by branch and by user.
Structure filter is not implemented yet.

The code of these classic-style filters seems to be tighly connected
with the old Log infrastructure => they are reimplemented from scratch.

Add a few niceties to popup controls: let them be focusable,
draw the focus border around them, make them keyboard friendly.

III. Details

VcsLogFilterer:
* VcsLogFilterer applies filters to the log. At first applies to the
  graph (to be able to filter by branch), then it applies other
  filters to details.
* The whole graph which was built can be filtered by branch. However
  details only of the recent commits are filtered by text/user, because
  details of older commits are not available.
  Get these details via VcsLogDataHolder#getTopCommitDetails().
* TODO: If there will be no or little results, we should load more
  commit details from the VCS. This will be implemented later.

VcsLogUI:
* Don't store the table model in VcsLogUI: it can be applied to the
  table at once.
* To keep filtering after refresh, apply filters instead of just
  creating new model.
2013-10-21 17:40:10 +04:00
Kirill Likhodedov 35879f85ec [log] Create NoGraphTableModel for future filtering
Some filters will be unable to work on graph, therefore we introducing
special renderer and special table model for them.

* Move common stuff to the AbstractVcsLogTableModel.
* Introduce NoGraphTableModel. Just store the list of commits there.
  There will be not many of them, performance should be OK.
* Fix the Root renderer in the VcsLogGraphTable to get the root from
  value, not from the node.
2013-10-21 17:40:10 +04:00
Kirill Likhodedov 53da3b537d [log] GraphModel#getNodeIfVisible by Hash
Check if the node of the given hash is visible.
Delegate to the BranchVisibleNodes and walk through the visible nodes
there. Iterating seems to be ok here, however if profiling will show
the slowdown, it can be rewritten to use a map.

Will be used in filtering.
2013-10-21 17:40:09 +04:00
Kirill Likhodedov 6eebae87c7 [log] move a method to VcsLogUtil. 2013-10-21 17:40:09 +04:00
Kirill Likhodedov e7575430df [log] Introduce CommitCellRender for rendering without painting graph
This structure is needed for future filters.
It existed before, but was accidentally removed because it wasn't
used at that time.

Move common methods from GraphCommitCellRender to the
AbstactPaddingCellRender.
2013-10-21 17:40:09 +04:00
Kirill Likhodedov 4fa54fe5f1 [log] cleanup: remove unused Kind 2013-10-21 17:40:08 +04:00
Kirill Likhodedov f69b51d013 [log] refactor: move getting selected changes from table to table model 2013-10-21 17:40:08 +04:00
Kirill Likhodedov 2373d8eb2a [log] Store top details in the cache forever, fix top commits number.
* Store details of the "top commits" (latest ones) in a separate map
  to make it always available even if DataGetter's cache overflows.

* Remember top N commits in LogData for two reasons:
  - to correctly determine the size of the log to be built into
    DataPack (to make sure that user gets only new commits after
    refresh, without hiding older ones).
  - to make them available for future filters implementation.
2013-10-21 17:40:08 +04:00
Kirill Likhodedov c46ac92037 [log] Improve synchronization & data flow in the VcsLogDataHolder
Encapsulate all information about the log data into a separate LogData.
VcsLogDataHolder is thread-safe, since all write-operations are
performed from a single sequential background queue,
and myLogData is substituted by new object on every change.

Previously the LogData it contained only the full log,
now it contains either full log, or the first part of it until the
full log is loaded; the DataPack built on this log; later it will
contain more.

Temporary remove the code which tried to guess the number of
top-commits which should be passed to DataPack.build: it is
incorrect, we have to remember this number per root. This will be
fixed in the next commit.
2013-10-21 17:40:07 +04:00
Kirill Likhodedov b629894d6d [log] Initialize the content pane in the EDT
Btw, it should be rewritten to load the log not
on the startup, but only when user opens the tab for the first time.
2013-10-21 17:40:07 +04:00
Kirill Likhodedov 3fe07df236 [log] Support empty log (which can happen after filtering)
Modify ranges to avoid throwing IOOBEs when the log becomes
empty after filtering.
2013-10-21 17:40:07 +04:00
Kirill Likhodedov 1c4460228b [log] optimize RefsModel#refsToCommit
* Instead of searching for references each time, prepare the MultiMap
  Hash -> Collection<VcsRef> in the RefsModel constructor.
* Remove myRefs and getAllRefs() since they are not used
  (the only caller is unused).
* Change List<VcsRef> to Collection<VcsRef>: collection is actually
  what is needed, because references are (and should be) sorted by
  particular VcsLogRefManagers.
2013-10-21 17:40:06 +04:00
Kirill Likhodedov 658130843e [log] Show branches in BranchesPanel instead of all refs.
This improves performance of sorting references when there are
many tags in the repository.

Better grouping capabilities will be provided later.
2013-10-21 17:40:06 +04:00
Kirill Likhodedov 7d52e6d19b [log] cleanup 2013-10-21 17:40:05 +04:00
Kirill Likhodedov 99195dc0a8 [log] Protect against cases when root color is undefined. 2013-10-21 17:40:05 +04:00
Kirill Likhodedov 5950de0a7f [log] Allow empty log (for filtering purposes). 2013-10-21 17:40:05 +04:00
Konstantin Bulenkov dbac23a2cc fix search field glow border 2013-10-21 15:33:16 +02:00
Dmitry Jemerov bf812b378b instructions for building and Ant build script 2013-10-21 15:29:20 +02:00
Dmitry Jemerov 70e628954f Apache 2 copyright headers 2013-10-21 15:29:20 +02:00
Maxim.Mossienko 22eb2449c6 avoid hard referencing of filecontent (including psi file in user data) in indexed stamp update runnable [r=Peter.Gromov] 2013-10-21 15:23:20 +02:00
anna 07edea4e7f hide settings for intentions without category (IDEA-114995) 2013-10-21 15:14:28 +02:00
anna 43b4bad033 eclipse: skip jRebel nature (IDEA-114956) 2013-10-21 15:14:27 +02:00
anna 38d2ec1915 disable testNG addition for jsp files 2013-10-21 15:14:26 +02:00
anna 15777aa6ca missed SuppressActions (IDEA-115027) 2013-10-21 15:14:25 +02:00
Dmitry Jemerov 320dcceccb fix paths in Python community layout 2013-10-21 15:02:55 +02:00
Dmitry Avdeev 6fe642265c IDEA-115062 New Project Wizard: multi-selection should not be allowed 2013-10-21 16:50:36 +04:00
Yann Cébron a6585958d3 Merge remote-tracking branch 'origin/master' 2013-10-21 14:34:40 +02:00