Giter Site home page Giter Site logo

yysun / git-source-control-provider Goto Github PK

View Code? Open in Web Editor NEW
200.0 19.0 109.0 9.48 MB

Git Source Control Provider is a visual studio plug-in that integrates Git with visual studio solution explorer.

Home Page: http://gitscc.codeplex.com/

License: GNU General Public License v2.0

C# 100.00%

git-source-control-provider's Introduction

Git Source Control Provider

Introduction

This Visual Studio Extensions integrates Git with Visual Studio solution explorer. It supports all editions of Visual studio 2010 except the Express Edition.

Donate

solution explorer

Features

How to use

  • Install Git for Windows, or Git Extensions, or TortoiseGit.
  • Run Visual Studio.
  • Go to Tools | Extension Manager, search online gallery for Git Source Control Provider and install.
  • Go to Tools | Options, Select Source Control.
  • Select Git Source Control Provider from the drop down list, and click OK.
  • Open your solution controlled by Git to see the file's status.
  • Right click within solution explorer and select "Git". If Git for Windows, Git Extensions or TortoiseGit are installed, their commands are listed in the menu.
  • Using the option page to disable the commands if you like.

Documentation

Documentation Change Logs Project Roadmap

git-source-control-provider's People

Contributors

bscheiman avatar duncansmart avatar elyscape avatar jacargentina avatar linquize avatar sc68cal avatar sciolist avatar sharwell avatar timc13 avatar ubikuity avatar yazgoo avatar yysun 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

git-source-control-provider's Issues

Preserve staging checkboxes when refreshing

Whenever the pending changes window refreshes, all of the staging checkboxes are reset.

Can you remember which files were checked and re-check them after refreshing?

I use auto-refresh, so if I carefully select files to stage, then save any file, my selection is blown away. This is rather annoying

(Which issue tracker do you use?)

Would be nice a new version?

How frequent is a "new release" created? I would love to be in sync with upstream for having things like #33 solved in my own company team working. If i create a new private version, that would create problems with later upstream versions, etc.

Cheers!

When I renamed "OptionChainListEOD" to "OptionChainListEod", it didn't recognize that the file had been changed, and didn't update the icons in Solution Explorer for VS2012.

Hi,

First of all, Git Source Control Provider is absolute magic, and I use it every day. Thank you ever so much for writing it.

These changes are for VS2012.

If I modify "filename.cs" to "filename2.cs", it:

  1. Deletes "filename.cs".
  2. Add "filename1.cs".

This is the correct behavior.

However, if I modify "filename.cs" to "Filename.cs", doesn't recognize the modification. However, the icon in the "Solution Explorer" permanently changes to a "+" symbol, which makes me suspicious that the file is not under GIT source control.

So, I ended up with about 20 files in "Solution Explorer" with the "+" symbol for the icon, despite the fact that they were under GIT source control. The problem was caused by renaming a file so that "Eod" became "EOD":

bad

When I renamed "EOD" back to "Eod", the problem disappeared:

good

Summary:

If I make a minor rename to a file, such that the case of the filename changes (i.e. "EOD" becomes "Eod"), then you should:

  1. Delete the original file.
  2. Add a new file.

If you don't, then the icons in "Solution Explorer" do not update properly.

I think this problem is related to the fact that under Linux, filenames are case sensitive, whereas in Windows they are not.

NullReferenceException in DiffMarginViewModel.Cleanup()

Found the following message in Event Log after VS 2012 crashed.

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
   at GitScc.Diff.DiffUpdateBackgroundParser.Dispose(Boolean)
   at GitScc.Diff.BackgroundParser.Dispose()
   at GitScc.Diff.ViewModel.DiffMarginViewModel.Cleanup()
   at GitScc.Diff.DiffMargin.Dispose()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.DisposeMargin(Microsoft.VisualStudio.Text.Editor.IWpfTextViewMargin)
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Close()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Dispose()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.DisposeMargin(Microsoft.VisualStudio.Text.Editor.IWpfTextViewMargin)
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Close()
   at Microsoft.VisualStudio.Text.Editor.Implementation.LeftMargin.Close()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Dispose()
   at Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextViewHost.Close()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseExistingWpfTextView()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseBufferRelatedResources()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseView()
   at Microsoft.VisualStudio.Editor.Implementation.VsCodeWindowAdapter.Close()
   at GitScc.ToolWindowWithEditor`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ClearEditor()
   at GitScc.ToolWindowWithEditor`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetDisplayedFile(System.String)
   at GitScc.PendingChangesView.ShowFile(System.String)
   at GitScc.PendingChangesView+<>c__DisplayClass4+<>c__DisplayClass8.<listView1_SelectionChanged>b__2()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
Stack:
   at GitScc.Diff.DiffUpdateBackgroundParser.Dispose(Boolean)
   at GitScc.Diff.BackgroundParser.Dispose()
   at GitScc.Diff.ViewModel.DiffMarginViewModel.Cleanup()
   at GitScc.Diff.DiffMargin.Dispose()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.DisposeMargin(Microsoft.VisualStudio.Text.Editor.IWpfTextViewMargin)
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Close()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Dispose()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.DisposeMargin(Microsoft.VisualStudio.Text.Editor.IWpfTextViewMargin)
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Close()
   at Microsoft.VisualStudio.Text.Editor.Implementation.LeftMargin.Close()
   at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.Dispose()
   at Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextViewHost.Close()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseExistingWpfTextView()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseBufferRelatedResources()
   at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.CloseView()
   at Microsoft.VisualStudio.Editor.Implementation.VsCodeWindowAdapter.Close()
   at GitScc.ToolWindowWithEditor`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ClearEditor()
   at GitScc.ToolWindowWithEditor`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetDisplayedFile(System.String)
   at GitScc.PendingChangesView.ShowFile(System.String)
   at GitScc.PendingChangesView+<>c__DisplayClass4+<>c__DisplayClass8.<listView1_SelectionChanged>b__2()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

Release version 1.3

This is the final issue to close before releasing version 1.3. Closing this issue will automatically close the milestone.

Add Git Console to Pending Changes Window

This will let user run git commands without leaving Visual Studio.

The console idea was tried in history viewer before, but run into some problem. e.g. it does not work when pushing through https where user needs to type in password.

c41464a is the commit remove the experimental console.

Use Visual Studio 2012's built-in comparer

VS2012 has a built-in differ, which allows the current file to be edited with full IntelliSense (as long as it was opened from the project)

Can GitSCP use this in VS2012?

(Either from right-click, Compare, and perhaps also embedded in the right pane)

Diff margin popup is empty after opening a file

If a modified file is opened in the editor, the diff margin popup does not show the previous text associated with a change until the text buffer is modified in some way (e.g. by typing a character).

Saving a file triggers a complete refresh

Saving a file triggers a complete refresh operation, but it would be more efficient to simply inform VS that the state of that file has changed and replace the entry in the tracker cache (without creating a new tracker). This would also remove the delay between a save operation and when the update appears in the solution explorer.

Text in diff margin popup is not selectable

The user may want select some previous text and copy it, but this is not currently possible. Clicking the text simply closes the popup.

The text box in the popup should remain read-only.

Add stage hunk to diff margin

There was no good way to stage hunk in visual studio. Diff margin provides the opportunity. Maybe we can click on the margin to stage the hunk.

Occasional momentary lag / freeze whenever I save.

Great tool but it tends to cause VS2010 to freeze up for a second or two mainly when I save a file. I have a very large project, thousands of files. Perhaps something could be offloaded to a background thread? I haven't tested to be 100% sure that GSCP is causing this issue. I also have resharper installed, no other plugins though. When I disable R# I see no benefit, when I disable GSCP I do.

Cheers,
Frank.

Release version 1.1

This issue should be the final issue closed for release 1.1 (closing this issue will close the milestone)

Compare doesn't work in VS11 Beta

I'm used to use "Compare..." command from "Changed files" sub-window quite a lot, but it looks like it's broken in VS11. It looks like it's not able to find the files to comare...

When viewing the diff of a file, it shows all lines as being new.

Hey yysun,

When I'm looking at a diff of a file inside GSCP it shows all of the lines as deleted and then as re-added. When I do a diff inside TortoiseGit however it shows the added/modified/deleted lines correctly. The auto-formatting of the file hasn't changed (e.g. the tabs haven't been replaced by spaces or anything like that).

I couldn't find this issue on here so I just thought I'd let you know. Let me know if you need more information.

-John

Diff margin does not refresh after a commit

The diff margin should refresh after the HEAD changes in the repository, regardless of whether the change was the result of an operation within Visual Studio or a separate interface.

Pending Changes commit not showing hooks errors/messages

I dont know if current version 0.9.6.2 is here, or in codeplex...

I've tried the one here..

Anyway, I have a problem with hooks: a standard commit-msg hook, returning an exit code = 1 makes git pending changes tool window work ugly..

You press commit, with a given message, then GitScc.GitBash.Run() is called. this method completely ignores the process ExitCode.

I think somehow the ExitCode should be handled in this case: when it is different to 0, it means there is an error con the commit-msg hook, and also should be nice to show a dialog with all the output comming from the Run() (not spliting the resulting string later:

if (msg.IndexOf('\n') > 0) msg = msg.Split('\n')[0];

Also, Commit() in PendingChangesView is not aware of the error inside tracker.Commit(). May be tracker.Commit() should get not a simple string, but a pair Status,Message (Status could be ExitCode, and Message the plain output) so you can show a dialog with the message when there is an error (ExitCode <> 0)

If u can point me the right repo to make some patches, i can help with this?

Thanks!

Provider dose not work on a large project

I am not sure what is the problem. The Provider is installed and configured, but it still not show anything in my project tree.

I am here to test something if need.

Installer dies on Windows 2008 Server

I downloaded VS2008 installer from http://gitscc.codeplex.com/ but when I run it it justs exits after running the preparatory procedures, leaving two messages in the event log:

  1. Source: MsiInstaller
    Windows Installer reconfigured the product. Product Name: Git Source Control Provider. Product Version: 0.5.6. Product Language: 1033. Manufacturer: Yiyi Sun. Reconfiguration success or error status: 0.
  2. Source: RestartManager
    Ending session 0 started ‎2010‎-‎07‎-‎27T02:14:57.436300100Z.

Can I somehow get around it?

Thanks

Iconsistent Line Endings Dialog viewing changed files

When viewing changed files in the Git Pending Changes tab, the 'Inconsistent Line Endings' dialog appears, asking if you wish to normalize line endings. It looks like it occurs when generating the diff in the preview window. This dialog can appear continuously if you happen to be working on the file that is selected in the tab. I would rather not untick the 'always show this dialog' option as I find this dialog useful for other things.

Diff margin causes slow scrolling

Profiling indicates that the primary cause is the calls to ITextView.GetTextViewLineContainingBufferPosition in DiffViewModel.UpdateDimensions.

Release version 1.2

This issue should be the final issue closed for release 1.2 (closing this issue will close the milestone)

"Pending Changes Filter" view does not show changed files in VS2012

When filtering "pending changes" in solution explorer view. It says: "All items have been filtered from view." Though when in normal mode I can see the "+" and other edit states of files.

I would love to have this supported. Though I'm not sure if it is a problem in VS or something missing in GitSourceControlProvider

The icons for the various states of the files are confusing.

The icon for an unmodified file is a lock, which would normally indicate that a file is locked.

The icon for a modified file is a check-mark, which would normally indicate that a file is "OK", needing no action.

Please re-evaluate the icons used for the various states of files to be less confusing.

Icons are not in sync with status

I know of two ways in which your extension tells me about the status of my files: one is via an icon next to the file, and one is a tooltip shown when hovering over the file.

The tooltip always seems to be correct, but the icons sometimes are not. For example the tooltip might say "Tracked" but the icon is the "New file" icon. This only seems to happen when the file as it's named in the OS has different casing than its representation in Visual Studio.

For example, a file on disk may be named FOO.CPP and in the project it might be Foo.cpp. In that case, the icon does not stay in sync with the file status.

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.