On 6/24/12 10:49 AM, David R. Morrison wrote:
> 
> On Jun 24, 2012, at 10:17 AM, David Lowe wrote:
> 
>> On 2012 Jun 22, at 2:35 PM, Hanspeter Niederstrasser wrote:
>>
>>> Buildworlds and dist-wide package roundups (like unstable->stable 
>>> or multi-package dep upgrades) need a lot of overlapping local 
>>> modifications and VCS-updating steps, and I stopped trying to do local 
>>> fixes in the only non-Fink git repo I look at, because there simple 
>>> local fixes kept getting in the way of easily merging upstream changes.
>>
>>      Even though git is being sold as a plug-in replacement for cvs, it 
>> shouldn't be approached the same.  An ideal workflow in git is to 
>> immediately create a local branch every time you work on something.  You can 
>> update the master all you want, and the temporary branch shouldn't need 
>> updating unless the master gets a new patch that you want.  The biggest 
>> difficulty is overcoming old habits…
>>
> 
> This sounds great for people writing code for fink-the-program, but I'm still 
> trying to understand how we would use git to manage our large collection of 
> fink ".info" files which make up the various "dists" directories.
> 
> The workflow for these has always been that there is a single master 
> repository, all package maintainers are allowed to update their own packages 
> within that master repository, and those changes are immediately propagated 
> to users via the more static rsync selfupdating method.
> 
> It's as if every update by a package maintainer is supposed to trigger a 
> release, which should include everything from the previous releases as well.
> 
> How should I be thinking about this workflow in a git context?
> 
>   -- Dave
> 
> 

One advantage is in handling package submissions.

Assuming we don't want everybody to have unfettered access, then there
are a couple of workflow options:

1)  If a maintainer has a github (or other provider) account, then
maintainer can update his packages in his/her own master distribution
tree or a public branch, and submit a pull request to get the packages
validated upstream (by us).  The person doing the validation can get the
changed package descriptions more or less automatically by switching
their active branch to a copy of the submitter's branch.  If the
package(s) pass[es] then the changes can be merged or cherry-picked into
the master branch, pushed upstream, and available via the next selfupdate.

2)  Maintainers without such accounts could diff their changes against
the upstream (us) master, and submit a patch (via email or on the
tracker).  The person who validates the submission can apply the patch
straightforwardly.  I've been _against_ this option in the past, but
there are good number of user-friendly tools to make applying patches
and viewing changes less of a chore.

3)  Or, a maintainer can do individual .info and .patch files, as we've
been handling all along.

Another advantage is for power users who like to roll their own options.
 As David L. mentioned, they can keep their own branch active, but still
have easy access to any changes from upstream.  (basically making their
whole branch into the local tree)

-- 
Alexander Hansen, Ph.D.
Fink User Liaison
My package updates: http://finkakh.wordpress.com/



------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to