Re: [PATCH v2 9/9] sha1_name: add support for @{publish} marks

2014-04-10 Thread Ramkumar Ramachandra
Felipe Contreras wrote:
 @@ -1068,23 +1069,35 @@ static const char *get_upstream_branch(const char 
 *name_buf, int len)
  */
 if (!branch)
 die(_(HEAD does not point to a branch));
 -   if (!branch-merge || !branch-merge[0]-dst) {
 -   if (!ref_exists(branch-refname))
 -   die(_(No such branch: '%s'), name);
 -   if (!branch-merge) {
 -   die(_(No upstream configured for branch '%s'),
 -   branch-name);
 +   switch (type) {
 +   case 'u':
 +   if (!branch-merge || !branch-merge[0]-dst) {
 +   if (!ref_exists(branch-refname))
 +   die(_(No such branch: '%s'), name);
 +   if (!branch-merge) {
 +   die(_(No upstream configured for branch 
 '%s'),
 +   branch-name);
 +   }
 +   die(
 +   _(Upstream branch '%s' not stored as a 
 remote-tracking branch),
 +   branch-merge[0]-src);
 +   }
 +   tracking = branch-merge[0]-dst;
 +   break;
 +   case 'p':
 +   if (!branch-push.dst) {
 +   die(_(No publish configured for branch '%s'),
 +   branch-name);

This assumes a push.default value of 'current' or 'matching'. What
happens if push.default is set to 'nothing' or 'upstream', for
instance?

p.s- Good to see you back on the list :)
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 9/9] sha1_name: add support for @{publish} marks

2014-04-10 Thread Ramkumar Ramachandra
Felipe Contreras wrote:
 diff --git a/sha1_name.c b/sha1_name.c
 index aa3f3e0..a36852d 100644
 --- a/sha1_name.c
 +++ b/sha1_name.c
 @@ -415,9 +415,9 @@ static int ambiguous_path(const char *path, int len)
 return slash;
  }

 -static inline int upstream_mark(const char *string, int len)
 +static inline int tracking_mark(const char *string, int len)
  {
 -   const char *suffix[] = { upstream, u };
 +   const char *suffix[] = { upstream, u, publish, p };

Oh, another thing: on some threads, people decided that @{push}
would be a more apt name (+ alias @{u} to @{pull} for symmetry).
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 9/9] sha1_name: add support for @{publish} marks

2014-04-10 Thread Felipe Contreras
Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  @@ -1068,23 +1069,35 @@ static const char *get_upstream_branch(const char 
  *name_buf, int len)
   */
  if (!branch)
  die(_(HEAD does not point to a branch));
  -   if (!branch-merge || !branch-merge[0]-dst) {
  -   if (!ref_exists(branch-refname))
  -   die(_(No such branch: '%s'), name);
  -   if (!branch-merge) {
  -   die(_(No upstream configured for branch '%s'),
  -   branch-name);
  +   switch (type) {
  +   case 'u':
  +   if (!branch-merge || !branch-merge[0]-dst) {
  +   if (!ref_exists(branch-refname))
  +   die(_(No such branch: '%s'), name);
  +   if (!branch-merge) {
  +   die(_(No upstream configured for branch 
  '%s'),
  +   branch-name);
  +   }
  +   die(
  +   _(Upstream branch '%s' not stored as a 
  remote-tracking branch),
  +   branch-merge[0]-src);
  +   }
  +   tracking = branch-merge[0]-dst;
  +   break;
  +   case 'p':
  +   if (!branch-push.dst) {
  +   die(_(No publish configured for branch '%s'),
  +   branch-name);
 
 This assumes a push.default value of 'current' or 'matching'. What
 happens if push.default is set to 'nothing' or 'upstream', for
 instance?

Why would that matter? @{upstream} doesn't depend on this, neither does
@{publish}; @{upstream} is .remote+.merge, @{publish} is .pushremote+.push.

If the user hasn't configured a publish branch, @{publish} fails.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 9/9] sha1_name: add support for @{publish} marks

2014-04-10 Thread Felipe Contreras
Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  diff --git a/sha1_name.c b/sha1_name.c
  index aa3f3e0..a36852d 100644
  --- a/sha1_name.c
  +++ b/sha1_name.c
  @@ -415,9 +415,9 @@ static int ambiguous_path(const char *path, int len)
  return slash;
   }
 
  -static inline int upstream_mark(const char *string, int len)
  +static inline int tracking_mark(const char *string, int len)
   {
  -   const char *suffix[] = { upstream, u };
  +   const char *suffix[] = { upstream, u, publish, p };
 
 Oh, another thing: on some threads, people decided that @{push}
 would be a more apt name (+ alias @{u} to @{pull} for symmetry).

@{push} is the name I originally suggested, but it's weird to talk about
the push branch, so I decided on the publish branch, which is more natural.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html