From: Tay Ray Chuan Date: Sat, 16 Jan 2010 15:30:43 GMT Subject: Re: [PATCH v3] Add push --set-upstream Message-ID: <20100116233043.26a5636d.rctay89@gmail.com> In-Reply-To: <20100116134656.GA4504@Knoppix> Hi, On Sat, 16 Jan 2010 15:46:57 +0200 Ilari Liusvaara wrote: > > Regarding the checking of ref->status here: > > > > Is it possible to delegate this to push_had_errors(remote_refs) > > instead? We skip setting up upstream tracking when there are errors > > from pushing, so we don't have to check ref->status anymore. > > No. As documetnation says, the update or no update is done on per-branch > basis. > > I see. If that's the case, could you also allow setting up upstream tracking when ref->status is 'none' and not consider it errorneous? After all, push_had_errors() does not consider 'none' errorneous. I think a switch block might be neater too. @@ -149,9 +149,15 @@ static void insert_packed_refs(const char *packed_refs, struct ref **list) * Check suitability for tracking. Must be successful / * already up-to-date ref create/modify (not delete). */ - if (ref->status != REF_STATUS_OK && - ref->status != REF_STATUS_UPTODATE) + switch (ref->status) { + case REF_STATUS_NONE: + case REF_STATUS_UPTODATE: + case REF_STATUS_OK: + ; /* no-op */ + default: continue; + } if (!ref->peer_ref) continue; if (!ref->new_sha1 || is_null_sha1(ref->new_sha1)) -- Cheers, Ray Chuan