Code Monkey home page Code Monkey logo

seegit's Introduction

SeeGit - The Git Repository Visualizer

This is a little experiment in creating a realtime git repository visualizer.

Screenshot

WARNING: This is some haacky code. I plan to rewrite it later. It's a proof of concept

Goal

I just want something that I can use during presentations on Git. So as I run commands, it'll show the git graph in a beautiful manner.

Next steps

  • I need to add local and remote branch annotations.

Quick start

  • Visit our Release Page to download the latest stable release.
  • Unzip files into a directory of your choice.
  • Click on SeeGit.Exe.
  • Point SeeGit to the root of a git repository. ** for larger repositories it may take a bit to load. Be patient.

Development

To build the project you will need Expression Blend SDK. Additionally, to run the build script you will need Windows PowerShell (Win 7 here and WinXP here).

If you would like to contribute, check out the CONTRIBUTING guidelines.

If you're wondering why the unit tests are structured as they are, read my blog post about structuring unit tests.

License

MIT License

Credits

seegit's People

Contributors

adamralph avatar anaisbetts avatar ben-m-lucas avatar chrisway avatar davidanthoff avatar daviddaly avatar drub0y avatar ecampidoglio avatar gpshonik avatar grahamthecoder avatar haacked avatar itsananderson avatar jdpurohit avatar kernelith avatar lukebakken avatar marisks avatar mmozuras avatar niik avatar nufyoot avatar reharik avatar robi-y avatar saintgimp avatar shana avatar shiftkey avatar therzok avatar trydis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seegit's Issues

deployable please

Hey this looks great, and may even be what I've been looking for.
I know i sound horribly lazy, but it seems like uf this is a win app it should be pretty easy to make an exe. And i wouldnt have to download other stuff and try and build it.
i feel mildly guilty for asking, but sometimes ease of enterence can help win converts, just look at .... enter analogy here as i can't think of one.
thx
r

DEMO MODE: Add a mode that only shows commit message inside the commit node

Sometimes I create repositories simply for educational purposes. I'd love to use SeeGit to create diagrams such as the one here that I created for a blog post.

So this could be a simple checkbox such that when clicked, the commit box only shows the commit message. Thus I could create commits with simple messages like "A", "B", "C" and get something that looks pretty close to the diagram.

Highlight the current branch

Right now, we show the current branch label in green. I'd like to highlight all the commits in the current branch as well.

Browse For Repository Causes Exception On WinXP

Browsing for a repository causes the following exception when running under WinXP:

System.PlatformNotSupportedException was unhandled
Message=Common File Dialog requires Windows Vista or later.
Source=Microsoft.WindowsAPICodePack.Shell

Add mode that shows unreachable commits

I'd like a way to flick on the ability to see all the commits in the repo including the unreachable ones. That makes it possible to visually see what happens when you do git reset HEAD~1 --soft for example.

Settings

Modifying settings through a cogwheel icon which makes a dropdown menu. Saving of settings will the done in a .config xml.

Option1: Setting Adorner visibility to Always Visible/Always Hidden/Based on Expanded
Option2: Setting Description in Expander to Visible/Hidden.
Option3: Setting SHA title to short/long SHA

Add a light Theme to SeeGit

I'm a little worried that the dark theme might be hard to see on some projectors.

It'd be great if we could get something that looks like this:

Viewing a Repo with one commit causes SeeGit to crash

SeeGit crashes when the git repo selected only has a root-commit. To reproduce, do the following steps:

mkdir test
cd test
git init
git commit --allow-empty -m "First commit"

Run SeeGit with the latest revision and select the test repo. An IndexOutOfRangeException is thrown inside NotifyPropertyChanged.cs

SeeGit crashes even if the first commit is not empty.

Toggle Show Unreachable vs Reachable Commits

Being able to see the entire Git repository graph, not just the reachable commits, is very helpful for debugging git issues. For example, if you run: git reset HEAD~1 --soft, the branch pointer will move to its parent commit. But you may still want to see the child commit.

By default, we should only show the reachable commits. But let's have a toggle button that will show all commits in the git repo graph. The non-reachable commits should be slightly greyed out or something to indicate they're in an unreachable state.

Ugly Setup

Let's fix this. Paint concept art then we do it.

Improve Rebase handling

I'd like to be able to better visualize rebases. The trick is detecting that a rebase occurs.

One option is for SeeGit to keep its own hashes of each commit that doesn't include parents. That way when it detects new commits with different SHAs, but matches what SeeGit thinks is an existing commit, we identify it as a rebase and take the original commit, remove its parent, attach it to the tip, and update the SHAs of those commits to the new ones.

Not sure how well this will work. Open to new ideas.

Turn off commit messages

Hi Phil,

I think it would be helpful to turn off the commit messages so it shows a cleaner graph. Perhaps just a check box at the top? I'll submit a pull request later tomorrow.

Thanks,
Terry

Handle eol issue in .gitattributes

We should add a .gitattributes file that configures eol stuff for the repo. The easiest would be to have one line in it:

"* text=auto"

That will make sure that we only have lf in the repo, irrespective of user/machine settings. We might also add

"*.cs eol=crlf"

That will make sure that all C# files always have crlf when checked out. This will also make sure that when someone downloads the code via "downlad as zip" from github, the C# files will have crlf. We might add a line like that for all file types used in the repo, given that this seems to be a complete windows only project.

Does not work on win7 x64

I tried to run the SeeGitApp.exe after downloading the zip from downloads .
I showed up a window and i selected my repo path.
now the app jus hangs, no output nothing .

Unable to build

Unable to build the sln. Win7 64-bit. Neither via build.cmd nor from VS2010. Might be missing some component requirement. Expression Blend?

Error   3   The tag 'Interaction.Behaviors

' does not exist in XML namespace 
'http://schemas.microsoft.com/expression/2010/interactivity'. 
Line 23 Position 10.    
C:\GitHub\SeeGit\SeeGitApp\Views\CommitVertexView.xaml  23  10  SeeGitApp

snippet

Related to issue #47.

Stack Overflow Exception

I got a Stack overflow Exception in LibGit2Sharp at RepositoryGraphBuilder.cs an line 109!

Anything I can do here?

Support for OS X

Looks like an awesome tool! Would be great to get this working on OS X.

Doesn't build in VS 2012

1>------ Build started: Project: SeeGitApp, Configuration: Debug Any CPU ------
1>  All packages listed in packages.config are already installed.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.Expression.Interactions". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Windows.Interactivity". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>D:\somewhere\SeeGit\SeeGitApp\Views\CommitVertexView.xaml(23,10): error MC3074: The tag 'Interaction.Behaviors' does not exist in XML namespace 'http://schemas.microsoft.com/expression/2010/interactivity'. Line 23 Position 10.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I'm no WPF expert and have no idea how to fix the namespace error.

Threaded actions

Should we set graph methods (adding commits, highlighting) to run in a secondary thread?

Move of commit objects

When i move of commit objects (rectangular) to the left or up it goes very quickly and far from main repo tree..

Unhandled NullException

Hi,

I've just cloned rev 4e3941 to try it on my repos, and everytime I try to load a git repo, I get the following error :
Imgur
I don't understand how it can reach that statement with the condition above that check if Source is null. Any ideas ?

Expander - Double commit description

When a commit view is expanded, commit description is written twice, both inside the expander and next to it. Visibility should be set to hidden on the one next to the expander when it's not collapsed.

how about an online version?

Have you thought about a version of SeeGit that could show the commit history and branching of a github repo? That would be pretty cool.

Branch adornment not being removed when adding new commits

Repro steps:

  1. Start the app and select a repository.
  2. Add a few commits to the repository.
  3. The branch label remains next to the previous commits even if I completely new-up a new repository.

@xpaulbettsx if you have a moment to take a quick look, maybe you'll see something obvious I'm missing? :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.