On Tue, Dec 9, 2008 at 11:55 AM, Assaf Arkin (JIRA) <[EMAIL PROTECTED]> wrote:

>
>    [
> https://issues.apache.org/jira/browse/BUILDR-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12654926#action_12654926]
>
> Assaf Arkin commented on BUILDR-222:
> ------------------------------------
>
> Awesome. A few comments:
>
> When you call Git.commit, it supers into a "common" commit (but only for
> SVN and Git, not Hg) which then subs through a bin method to perform the
> actual command, which doesn't mean the same thing in all VCS. In terms of
> readability, there's more code to deal with than if the commit method was
> never shared.


ok, I will push down the super implementation.


>
> Git.commit is sometimes commit, but sometimes it's pushes, which happens to
> be closer in spirit to an SVN commit, which just means the method name is
> not self-describing.


any suggestions?



>
> Vcs::Base.execute requires 8 lines (!) to deal with the :nofail option,
> which in turn is only used once by Git's uncommitted_files method. Everybody
> gets to share that code path, though. Much simpler is to have
> uncommited_files deal with its own personal issues, changing its first line
> to:
>
> status = `git status`
>

Actually I evaluated this option and found it not so great for testing. I
can't see how to mock this shell call. I'm a bit uncomfortable with that.


>
> Git.applies_to? should look for .git (or .git/config) in the current
> directory instead of running git branch. As a result of this change, you'll
> only be able to make a release from a buildfile at the root of the project,
> a good restriction to have.
>

Same issue for me here: testing/mocking. And the restriction you mentioned
will not be valid  for Svn.



>
> Are both vcs and guess_vcs method necessary?


Actually not. I will merge them.


>
> > Support Git as a version control system
> > ---------------------------------------
> >
> >                 Key: BUILDR-222
> >                 URL: https://issues.apache.org/jira/browse/BUILDR-222
> >             Project: Buildr
> >          Issue Type: Improvement
> >          Components: Core features
> >            Reporter: Alexis Midon
> >         Attachments: BUILDR-222-0001-git-support-for-release.txt
> >
> >
> > The Release task uses Subversion to check for uncommitted files and tag
> the source repository.
> > Of course this fails when your project does not use Subversion but Git
> for instance.
> > The improvement could be to provide a VCS abstraction with 2
> implementations: Subversion and Git.
> > A method could instantiate the proper implementation.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

Reply via email to