Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branch/Tags #14

Open
calebcartwright opened this issue Jul 1, 2018 · 4 comments
Open

Branch/Tags #14

calebcartwright opened this issue Jul 1, 2018 · 4 comments
Assignees
Labels
documentation Work related to documentation

Comments

@calebcartwright
Copy link
Member

I was reviewing the Reports for the extension in the VSTS marketplace, and saw a couple Uninstalls where the reason given was "didn't include features I was expecting". One of those uninstalls actually added detail stating: We need to sync specific branches/tags.

Based on my understanding of git's mirror functionality, git mirror syncs all refs, including all branches, tags, etc. and I don't think it's possible to use mirror in a selective way. As such, I'm not sure that the mirror functionality of git is the right/best solution for scenarios for syncing single/specific branches or tags (and accordingly I think that means the Mirror Extension is feature complete/working as designed)

However, I'm wondering if it'd be a good idea to some documentation detailing what mirror is/what it does and when it should not be used (i.e. wanting to push single tags, etc.) for end users who may not be aware.

Thoughts @traviskosarek?

@calebcartwright calebcartwright added the question Further information is requested label Jul 1, 2018
@traviskosarek
Copy link
Member

I saw this too and your understanding is correct. I think it is a good idea to update the documentation to better reflect what mirroring does (copies everything tags/branches/commits) and that piece meal copying is not what the extension is meant to do.

That said, it is a possibility to add another VSTS task that would serve the functionality of pushing specific branches or tags. My opinion would be that this functionality would be it's own entry in the VSTS Marketplace rather than bundled with the Mirror Task. Thoughts?

@calebcartwright
Copy link
Member Author

calebcartwright commented Jul 2, 2018

I need to think on this one a bit, but I'm currently thinking about it in two parts:

  1. does it warrant a task
  2. if 1 is true, then how to package/distribute

For 1, I would think that it is pretty easy to add another git remote and push a single branch/tag/etc. via a one or two line script, and in those simple-script scenarios I always wonder if a custom task is worth it I.e.:

git remote add foo https://foo.git.website.stuff
git push -u foo [other options] <stuff>

Additionally, there's a lot of git related extensions on the marketplace already. Therefore, if we do decide to make a task, I think we'd first need to investigate what exists already to make sure we aren't creating a duplicate of something that exists/works.

On 2, If we were starting from scratch, my inclination would be to create a single Extension (called git utilities or something along those lines) that contained what I view to be very related tasks in mirror and other. However, I know that would be problematic given our current state with an existing/fairly well known extension that is all about mirroring (from the names to the docs to the icons) :)

@traviskosarek
Copy link
Member

I agree with you on 1, the functionality does not really need to be wrapped in a task because the script is so short. That said, I think people like the extension just because it makes the build pipeline more visually streamlined and it makes it extremely easy to repeat similar functionality across pipelines. (Same concept for the mirror task)

Is it worth doing? Maybe. Definitely need more research on this. There is the task "Git Tasks" on the marketplace that currently only has mirroring capabilities, but I haven't done a thorough enough job to weed out other available tasks.

For 2, I am torn. I believe most people want to use VSTS more like a piecemeal package manager and only to install specific tools that they would use. Similar to how you would install a small package from NPM.

I do like the idea of having a suite of tools, but I do think the majority of people look through the marketplace for individual functionality rather than an entire suite of tools. Personally, I am less worried about a potential notoriety loss and more worried that the scope of the task would be too broad, causing people to shy away from downloading it to begin with.

Regardless, I think this is a good discussion to have with much more depth than maybe GitHub boards can provide, haha

@calebcartwright
Copy link
Member Author

Couple things in there that I'd disagree with, but I do agree that we shouldn't take this issue too far OT. I'd suggest we use this issue to track work related to updating the docs for the Mirror Extension/Repo and discuss the more philosophical points offline

@calebcartwright calebcartwright added documentation Work related to documentation and removed question Further information is requested labels Jul 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Work related to documentation
Projects
None yet
Development

No branches or pull requests

2 participants