Skip to content
This repository was archived by the owner on Feb 28, 2023. It is now read-only.

Commit 87f84d2

Browse files
committed
Merge branch 'release/1.0.0.572'
2 parents 26349ec + a6a283a commit 87f84d2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3915
-3935
lines changed

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Compiled Lua sources
2+
luac.out
3+
4+
# luarocks build files
5+
*.src.rock
6+
*.zip
7+
*.tar.gz
8+
9+
# Object files
10+
*.o
11+
*.os
12+
*.ko
13+
*.obj
14+
*.elf
15+
16+
# Precompiled Headers
17+
*.gch
18+
*.pch
19+
20+
# Libraries
21+
*.lib
22+
*.a
23+
*.la
24+
*.lo
25+
*.def
26+
*.exp
27+
28+
# Shared objects (inc. Windows DLLs)
29+
*.dll
30+
*.so
31+
*.so.*
32+
*.dylib
33+
34+
# Executables
35+
*.exe
36+
*.out
37+
*.app
38+
*.i*86
39+
*.x86_64
40+
*.hex
41+
42+
# IntelliJ Idea Project Files
43+
*.iml
44+
.idea

.luacheckrc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
files['.luacheckrc'].global = false
2+
std = 'max+busted'
3+
4+
globals = {
5+
'love',
6+
'getVersion',
7+
'getTitle'
8+
}
9+
10+
exclude_files = {
11+
'./lua_install/*'
12+
}
13+
14+
ignore = {
15+
'/self'
16+
}

CHANGELOG.md

Lines changed: 96 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,54 @@
1-
# Version 0xxx - 2015/xx/xx
1+
# Version 1.0.0.572 - 2016-12-23
2+
3+
### Additions
4+
- Added [Graphoon](https://github.com/rm-code/Graphoon) library
5+
- Added a loading screen (Shows a nice graph animation while the repositories are loaded)
6+
- Added a completely new selection screen
7+
- Repositories can be named after being dropped on the application
8+
- Mouse indicates clickable elements
9+
- Added small instruction messages if LoGiVi is started for the first time
10+
- Added a custom icon (Thanks to https://twitter.com/nsK_pz)
11+
- Added an option to hide author labels (Closes [#65](https://github.com/rm-code/logivi/issues/65))
12+
13+
### Fixes
14+
- Fixed default config not being used correctly
15+
- Fixed pattern matching for windows specific paths
16+
- Fixed camera being positioned off center when the visualisation starts
17+
- Fixed nodes spawning on a straight line occasionally
18+
- Fixed [#69](https://github.com/rm-code/logivi/issues/69) - Adjust position of folder labels if node is empty or just contains one file
19+
- Fixed [#70](https://github.com/rm-code/logivi/issues/70) - Faulty creation of file colors
20+
21+
### Removals
22+
- Removed loading of custom avatars
23+
- Removed code for deletion of temporary files
24+
- Removed some of the debug output
25+
- Removed warning and creation of example log when LoGiVi is loaded for the first time
26+
27+
### Other Changes
28+
- Completely rewrote the Timeline
29+
- Clicks should be much more precise now
30+
- Timeline is fading out when the mouse isn't hovering over it (Date label changes position accordingly)
31+
- Use spritebatch when drawing avatars
32+
- Improve warning message displayed when running LoGiVi for the first time
33+
- Config Files are only loaded once when the program starts
34+
- Updated config file for use with LÖVE 0.10.1
35+
- Repositories are stored in a separate file now
36+
- This way we can also refresh logs which have been added via the directorydropped callback
37+
- Repositories are only updated if they have changed since the last time they were opened
38+
- Improved settings template
39+
- Avatar icons have custom colors (Closes [#66](https://github.com/rm-code/logivi/issues/66))
40+
- Updated the sprites used for avatar icons (Closes [#67](https://github.com/rm-code/logivi/issues/67))
41+
42+
---
43+
44+
# Version 0432 - 2015-12-14
245

346
### Additions
447
- Added scaling for folder and name labels based on the camera's zoom factor
548
- Added MessageBox which displays a warning in case git isn't found on the user's system (Closes [#50](https://github.com/rm-code/logivi/issues/50))
649
- Added mouse panning and scaling (Closes [#45](https://github.com/rm-code/logivi/issues/45))
7-
- The mouse can be used to drag around the camera while the left button is pressed
8-
- The mouse wheel can be used to zoom in and out
50+
- The mouse can be used to drag around the camera while the left button is pressed
51+
- The mouse wheel can be used to zoom in and out
952

1053
### Fixes
1154
- Fixed [#51](https://github.com/rm-code/logivi/issues/51) - Fixed crash caused by faulty variable
@@ -15,9 +58,11 @@
1558

1659
### Other Changes
1760
- LoGiVi now starts in windowed mode on first start
18-
- Canged design of the file panel to be less intrusive
61+
- Changed design of the file panel to be less intrusive
62+
63+
---
1964

20-
# Version 0404 - 2015/11/24
65+
# Version 0404 - 2015-11-24
2166

2267
### Additions
2368
- Added option to add a repository by dropping its folder onto LoGiVi (Closes [#46](https://github.com/rm-code/logivi/issues/46))
@@ -29,7 +74,9 @@
2974
- Fixed [#44](https://github.com/rm-code/logivi/issues/44) - File paths are validated after the config has been validated
3075
- Fixed direction of camera rotation
3176

32-
# Version 0375 - 2015/11/11
77+
---
78+
79+
# Version 0375 - 2015-11-11
3380

3481
**Important**: With this version LoGiVi now ***requires*** LÖVE Version [0.10.0](https://love2d.org/wiki/0.10.0) to run and will no longer work with LÖVE 0.9.2! LÖVE 0.10.0 has not yet been officially released, but can be compiled from the source. For more information check out the [official LÖVE repository](https://bitbucket.org/rude/love/overview).
3582

@@ -41,7 +88,9 @@
4188
### Other Changes
4289
- Updated LoGiVi to run on LÖVE 0.10.0
4390

44-
# Version 0351 - 2015/08/01
91+
---
92+
93+
# Version 0351 - 2015-08-01
4594

4695
### Additions
4796
- Added authors' names to their avatars
@@ -58,26 +107,27 @@
58107
### Other Changes
59108
- Display a default string when no custom information about a project can be loaded
60109

110+
---
61111

62-
# Version 0312 - 2015/04/20
112+
# Version 0312 - 2015-04-20
63113

64114
### Additions
65115
- Added keybinding for easy exiting
66116
- Added selection screen
67-
- LoGiVi can keep track of multiple git logs
68-
- User can select which log to visualize on the selections screen
69-
- User can use "exit"-key to return to the selection screen
70-
- Log-selection list is scrollable with the mouse wheel
71-
- Added watch button which takes the user to the visualization of the selected log
117+
- LoGiVi can keep track of multiple git logs
118+
- User can select which log to visualize on the selections screen
119+
- User can use "exit"-key to return to the selection screen
120+
- Log-selection list is scrollable with the mouse wheel
121+
- Added watch button which takes the user to the visualization of the selected log
72122
- Added example log which will be written to the save directory if no logs are found
73123
- Added option to specify a custom color for a file extension in the config file
74124
- Git logs can now be created from within LoGiVi (Closes [#3](https://github.com/rm-code/logivi/issues/3))
75-
- The user can specify the path to a local repository in the config file
76-
- LoGiVi will automatically create a log and load this repository on start
77-
- Information about the repository will be automatically written to the project folder (first commit, latest commit, total number of commits)
78-
- This currently doesn't work on Windows (See [#28](https://github.com/rm-code/logivi/issues/28))
79-
- Information is displayed on the info panel
80-
- Added a refresh button to the SelectionScreen's info panel, which can be used to update the selected log
125+
- The user can specify the path to a local repository in the config file
126+
- LoGiVi will automatically create a log and load this repository on start
127+
- Information about the repository will be automatically written to the project folder (first commit, latest commit, total number of commits)
128+
- This currently doesn't work on Windows (See [#28](https://github.com/rm-code/logivi/issues/28))
129+
- Information is displayed on the info panel
130+
- Added a refresh button to the SelectionScreen's info panel, which can be used to update the selected log
81131
- Added function to sort files based on their extension while placing them around their folder node (Closes [#22](https://github.com/rm-code/logivi/issues/22))
82132
- Added button to SelectionScreen which opens the save directory
83133
- Added tooltips
@@ -92,7 +142,7 @@
92142
- Fixed [#30](https://github.com/rm-code/logivi/issues/30) - Ignore files when no changes were applied
93143
- Fixed [#29](https://github.com/rm-code/logivi/issues/29) - Reset the FileManager when MainScreen is closed
94144
- Fixed [#27](https://github.com/rm-code/logivi/issues/27) - Replace escape characters in the path to a repository
95-
- Fixed [#23](https://github.com/rm-code/logivi/issues/23) - Increase speed at which example is written to the harddrive
145+
- Fixed [#23](https://github.com/rm-code/logivi/issues/23) - Increase speed at which example is written to the HDD
96146
- Fixed [#20](https://github.com/rm-code/logivi/issues/20) - Center the screen when it is resized in the config
97147
- Fixed [#19](https://github.com/rm-code/logivi/issues/19) - Allow multiple key bindings
98148
- Fixed [#5](https://github.com/rm-code/logivi/issues/5) - Improve author movement
@@ -104,21 +154,23 @@
104154
- Reduced time before authors start fading
105155
- Config file now uses a custom format based on ini-files
106156

107-
# Version 0204 - 2015/04/10
157+
---
158+
159+
# Version 0204 - 2015-04-10
108160

109161
### Additions
110162
- Added option to set the visibility of folder labels in the config file
111163
- Added keybinding for hiding / unhiding folder labels while LoGiVi is running
112164
- Added keybinding for pausing the automatic commit loading
113165
- Added keybinding for manually loading the next commit
114166
- Added keybinding for manually loading the previous commit
115-
- Added keybinding for rewersing the graph creation (will run back until it reaches the first commit)
167+
- Added keybinding for reversing the graph creation (will run back until it reaches the first commit)
116168
- Added keybinding for toggling fullscreen mode
117169
- Added a timeline
118-
- Indicates the current position of the log compared to the total commit history and shows the date of the currently indexed commit
119-
- Allows the user to quickly jump around in time (forward and backwards) while still rendering the full graph (Closes [#10](https://github.com/rm-code/logivi/issues/10))
120-
- Can be hidden via keybinding or in the config file
121-
- Added option to the config file which makes the visualisation start at the end of the git log (so it starts with the newest commit and moves towards the oldest)
170+
- Indicates the current position of the log compared to the total commit history and shows the date of the currently indexed commit
171+
- Allows the user to quickly jump around in time (forward and backwards) while still rendering the full graph (Closes [#10](https://github.com/rm-code/logivi/issues/10))
172+
- Can be hidden via keybinding or in the config file
173+
- Added option to the config file which makes the visualization start at the end of the git log (so it starts with the newest commit and moves towards the oldest)
122174
- Added option to disable autoplay in the config file
123175

124176
### Fixes
@@ -135,7 +187,7 @@
135187

136188
---
137189

138-
# Version 0142 - 2015/04/01
190+
# Version 0142 - 2015-04-01
139191

140192
### Additions
141193
- Added more options to the logivi config file
@@ -157,19 +209,19 @@
157209
- Fixed [#2](https://github.com/rm-code/logivi/issues/2) - Edges are removed correctly when a node is killed
158210

159211
### Other Changes
160-
- Updated message box when no git log is found and added a button to directly open the logivi wiki
212+
- Updated message box when no git log is found and added a button to directly open the LoGiVi wiki
161213
- Improved graph layout by tweaking the mass calculation and charge of each node (edges should now be shorter which reduces the total size of the graph)
162214
- Increased width of the graph's edges
163215
- Replaced old movement code for authors with physical based approach (Closes [#5](https://github.com/rm-code/logivi/issues/5))
164216

165217
---
166218

167-
# Version 0104 - 2015/03/30
219+
# Version 0104 - 2015-03-30
168220

169221
### Additions
170222
- Added debug information about the user's system and supported features of the LÖVE framework which will be printed to the console
171223
- Added configuration file reader which will contain all options for LoGiVi
172-
- This means we can get rid of the _aliases_ and _avatars_ files since they now are bundled in the config file
224+
- This means we can get rid of the _aliases_ and _avatars_ files since they now are bundled in the config file
173225
- Added option to set a background color in the configuration file
174226
- Added option for setting a resolution in the configuration file
175227
- Added possibility use local images as avatars
@@ -189,10 +241,10 @@
189241

190242
### Other Changes
191243
- Rewrote most of the graph system
192-
- The graph is structured and handled completely different than before with files, folder nodes and edges being independent from each other
193-
- Gets rid of a lot of issues like edges overlaying other nodes
194-
- The arrangement of files around folder nodes is no longer updated every frame
195-
- Major improvements in memory usage, performance and garbage production
244+
- The graph is structured and handled completely different than before with files, folder nodes and edges being independent from each other
245+
- Gets rid of a lot of issues like edges overlaying other nodes
246+
- The arrangement of files around folder nodes is no longer updated every frame
247+
- Major improvements in memory usage, performance and garbage production
196248
- Updated log reader to separate commits based on the author tag instead of looking for the "special" logivi_commit tag (which was pretty useless anyway)
197249
- Updated log reader to digest unix timestamps and transform them into human readable dates
198250
- Updated arrangement of file nodes to make them fill up the empty space where the folder nodes used to be
@@ -207,20 +259,20 @@
207259

208260
---
209261

210-
# Version 0052 - 2015/01/18
262+
# Version 0052 - 2015-01-18
211263

212264
### Additions
213-
- Added (rudimentary) Force-Directed Graph which - visualises the files and folders of a git repository at a given point in time
214-
- Files are represented as evenly distributed leaves around their parent folder node
215-
- Depending on the amount of files in one folder new folders will be created automatically)
216-
- Modified files are coloured red and fade back to their original color over time
217-
- Folders are represented as single green dots (this will be changed in one of the next releases) and are connected by lines
265+
- Added (rudimentary) Force-Directed Graph which - visualizes the files and folders of a git repository at a given point in time
266+
- Files are represented as evenly distributed leaves around their parent folder node
267+
- Depending on the amount of files in one folder new folders will be created automatically)
268+
- Modified files are colored red and fade back to their original color over time
269+
- Folders are represented as single green dots (this will be changed in one of the next releases) and are connected by lines
218270
- Added list of all authors contributing to the project
219271
- Added list of all file extensions found in the project
220-
- Added colouring of file nodes based on their file extensions
272+
- Added coloring of file nodes based on their file extensions
221273
- Added camera which keeps tracking the generated graph automatically
222274
- Added floating authors
223-
- Authors will show links to the files they currently edit
224-
- Authors can be assigned an alias
225-
- Authors can be assigned an avatar (grabbed online)
275+
- Authors will show links to the files they currently edit
276+
- Authors can be assigned an alias
277+
- Authors can be assigned an avatar (grabbed online)
226278
- Added warning message if no log file can be found

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License (MIT)
22

3-
Copyright (c) 2014 - 2015 Robert Machmer
3+
Copyright (c) 2014 - 2016 Robert Machmer
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,7 @@
1-
# LoGiVi
1+
# LoGiVi ![image](https://raw.githubusercontent.com/rm-code/logivi/develop/res/img/icon/64px.png)
22

3-
LoGiVi is a git-repository visualisation tool inspired by [Gource](http://gource.io/) and __currently in development__. It was written from scratch using [Lua](http://www.lua.org/) and the [LÖVE](https://love2d.org/) framework.
4-
5-
Note: Since version [0375](https://github.com/rm-code/logivi/releases/tag/0375) LoGiVi uses version [0.10.0](https://love2d.org/wiki/0.10.0) of the LÖVE framework.
3+
[![Version](https://img.shields.io/badge/Version-0432-blue.svg)](https://github.com/rm-code/logivi/releases/latest) [![LOVE](https://img.shields.io/badge/L%C3%96VE-0.10.1-EA316E.svg)](http://love2d.org/) [![License](http://img.shields.io/badge/Licence-MIT-brightgreen.svg)](LICENSE.md)
64

7-
![Example Visualization](https://github.com/rm-code/logivi/wiki/media/logivi_0312.gif)
5+
LoGiVi is a [Git](https://git-scm.com/)-respository visualisation tool inspired by [Gource](http://gource.io/) and __currently in development__. It was written from scratch using [Lua](http://www.lua.org/) and the [LÖVE](https://love2d.org/) framework.
86

9-
# Instructions
10-
When you run LoGiVi for the first time it will set up all necessary folders, an example git log and a config file in the save directory on your harddrive.
11-
12-
The location of this save directory depends on the OS you are using:
13-
14-
- ***OSX*** ```/Users/user/Library/Application Support/LOVE/rmcode_LoGiVi```
15-
- ***WINDOWS*** ```C:\Users\user\AppData\Roaming\LOVE``` or ```%appdata%\LOVE\```
16-
- ***LINUX*** ```~/.local/share/love/```
17-
18-
A dialog will pop up which allows you to view the save directory on your computer.
19-
20-
## Generating git logs automatically
21-
LoGiVi can generate git logs automatically when you specify a path to a git repository on your harddrive. Open the _settings.cfg_ file in the LoGiVi save directory and look for the _[repositories]_ section. Add the absolute path to the folder containing the git repository like this:
22-
23-
```
24-
[repositories]
25-
logivi = /Users/Robert/Coding/Lua/LÖVE/LoGiVi/
26-
```
27-
The name on the left side of the equals sign will be used as the project name to identify this repository so make sure you use unique names here.
28-
29-
LoGiVi can also handle Windows paths:
30-
31-
```
32-
[repositories]
33-
logivi = C:\Users\rmcode\Documents\Coding Projects\LoGiVi\
34-
```
35-
After you have added the paths of your project to the config file, the log and info files will be created the next time you run LoGiVi (this may take a few seconds depending on how large the repositories are).
36-
37-
## Generating git logs manually
38-
If you don't want the logs to be generated automatically, or if you don't have git in your PATH, you can also generate the git logs manually.
39-
40-
Open your terminal and type in the following command (replace the path with your own path leading to a git repository):
41-
42-
```bash
43-
git -C "Path/To/Your/Repository" log --reverse --numstat --pretty=format:"info: %an|%ae|%ct" --name-status --no-merges > log.txt
44-
```
45-
This will create the file _log.txt_ in the folder you are currently in. Take this newly created file and drop it into a folder in the _logs_ subfolder in the LoGiVi save directory:
46-
47-
```
48-
/Users/Robert/Library/Application Support/LOVE/rmcode_LoGiVi/logs/yourProject/log.txt
49-
```
50-
LoGiVi will use the folder's name to identify the log so make it informative.
51-
52-
# License
53-
54-
The MIT License (MIT)
55-
56-
Copyright (c) 2014 - 2015 Robert Machmer
57-
58-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
59-
60-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
61-
62-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7+
![Example Visualization](https://cloud.githubusercontent.com/assets/11627131/13007242/29da1fd0-d18f-11e5-9615-96cf0e4c2b3d.gif)

0 commit comments

Comments
 (0)