[MonoDevelop] Git add-in

Dale Ragan dale.ragan at sinesignal.com
Thu Jul 29 13:59:34 EDT 2010


>> >
>> > As a user I don't want to have to deal with the complexity of git
>> every
>> > day. There are only a few commands I need to use in everyday work
>> > (review changes, commit changes, update from repo). I want MD to take
>> > the correct decisions for me in order to perform those operations with
>> > git. In case I need to do more advanced git operations, I can always
>> > open a console and use the git command.
>>
>> I agree in simplifying the workflow with Git, but at the same time we
>> need
>> to stay uniform with the naming in some way.  I have yet to see an IDE
>> that supports Git not do the same thing.
>
> That's why MD will be better ;)

How can I debate against that! ;)

>>
>> >>
>> >> Here's a list of commands that I think should be implemented:
>> >>
>> >>   File Menu
>> >>     Initialize - Create a new git repository
>> >
>> > We can create a new "Create repository" command, which can also be
>> > implemented for SVN.
>> >
>> >>     Clone - Clone an existing git repository
>> >
>> > It is the Checkout command, which can be renamed to "Get Project from
>> > Repository", shared with SVN.
>>
>> I'm fine with leaving it named Checkout while under SVN, but under Git
>> to
>> keep uniform, I really would like to see Clone.  I'm sure we can figure
>> something out to distinguish which VCS we are using and change
>> accordingly.
>
> I don't think there is an easy solution for this. At least easier that
> just changing the command name to something that conveys the meaning
> both for git and svn.

Let's just leave it "Checkout" then and map it to clone.  This will help
keep the naming consistent with MD's commands between VCS's, like Levi
would like to see.

>>
>> >>
>> >>   Project Context Menu
>> >>     Commit - Commit changed files to local repository allowing the
>> user
>> >> to
>> >> check which changes to stage for the commit
>> >
>> > This is the current Review Changes view and the Commit command.
>> >
>> >>     Push - Push changes to remote repository
>> >
>> > This command is new and specific to Git. Ok to add it.
>> >
>> >>     Pull - Pull changes from remote repository
>> >>     Fetch - Fetch changes from remote repository
>> >
>> > Pull and Fetch are implemented by the "Update" command, so there is no
>> > need to have them as separate commands.
>> >
>>
>> As other's have noted, I think we need to have both.  When I have a fork
>> and I want to update my fork to latest from the repository I forked
>> from,
>> I like to fetch first and then do a merge.  It makes life easier when
>> conflicts are found.
>
> The Update command will be able handle conflicts. If that's not enough
> for you use case, we'll have to see what's this specific workflow and
> evaluate if it is worth implementing it as a MD feature.

OK, we'll play this one by ear and see how it goes and add it if needed.

>>
>> >>     Create Branch - Create a new branch
>> >>     Checkout Branch - Checkout an existing branch
>> >>     Merge - Merge changes from one branch to another
>> >
>> > We can have a branch manager for doing those operations.
>>
>> Well Checkout branch is already started with the Switch to Branch
>> command.
>>  I agree they could also be in the branch manager, but I think we should
>> keep Create Branch for speed.  I create branches all the time and I
>> really
>> don't want to have to switch to the dialog every time, I rather just
>> right
>> click the project and click Create Branch which will perform a "git
>> checkout -b branchname" for me.
>
> OK
>
>>
>> >>     Create Tag - Create a new Tag
>> >
>> > We can add this command.
>> >
>> >>     Log - View commit log
>> >
>> > That's the existing Log command.
>> >
>> >>     Reset HEAD - Revert changes to last commit
>> >
>> > There is a Revert command in the SVN add-in which can be generalized.
>> >
>> >>     Stash - Stash changes and reverting to last commit
>> >>     UnStash - Unstash a stash object
>> >
>> > I'm not sure we need those. MD can automatically use stash for the
>> most
>> > common operations, such as when pulling or when switching branches.
>>
>> What if you don't need to pull or switch branches and you're working on
>> something and all of a sudden you need to stop to fix some critical bug?
>
> If that's a feature that people use very often, I'm OK with adding a
> command for it.

OK, we'll play this one by ear also and set it as a low priority.  If
nobody complains about it not being available, we'll leave it out.

> Lluis.
>
>
>




More information about the Monodevelop-list mailing list