Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 692025
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T02:36:27+00:00 2026-05-14T02:36:27+00:00

A git tool that meets the specs below is needed. Does one already exist?

  • 0

A git tool that meets the specs below is needed. Does one already exist? If not, I will create a script and make it available on GitHub for others to use or contribute. Is there a completely different and better way to solve the need to build/test every commit to a branch in a git repository? Not just to the latest but each one back to a certain starting point.

Background: Our development environment uses a separate continuous integration server which is wonderful. However, it is still necessary to do full builds locally on each developer’s PC to make sure the commit won’t “break the build” when pushed to the CI server. Unfortunately, with auto unit tests, those build force the developer to wait 10 or 15 minutes for a build every time.

To solve this we have setup a “mirror” git repository on each developer PC. So we develop in the main repository but anytime a local full build is needed. We run a couple commands in the mirror repository to fetch, checkout the commit we want, and build. It’s works extremely lovely so we can continue working in the main one with the build going in parallel.

There’s only one main concern now. We want to make sure every single commit builds and passes tests. But we often get busy and neglect to build several fresh commits. Then if the build fails you have to do a bisect or manually figure build each interim commit to figure out which one broke.

Requirements for this tool:

  1. The tool will look at another repo, origin by default, fetch and compare all commits that are in branches to 2 lists of commits. One list must hold successfully built commits and the other lists commits that failed.

  2. It identifies any commits not yet in either list and begins to build them in a loop in the order that they were committed. It stops on the first one that fails.

  3. The tool appropriately adds each commit to either the successful or failed list after it as attempted to build each one.

  4. The tool will ignore any “legacy” commits which are prior to the oldest commit in the success list. This logic makes the starting point possible in the next point.

  5. Starting Point. The tool building a specific commit so that, if successful it gets added to the success list. If it is the earliest commit in the success list, it becomes the “starting point” so that none of the commits prior to that are examined for builds.

  6. Only linear tree support? Much like bisect, this tool works best on a commit tree which is, at least from it’s starting point, linear without any merges. That is, it should be a tree which was built and updated entirely via rebase and fast forward commits.

  7. If it fails on one commit in a branch it will stop without building the rest that followed after that one. Instead if will just move on to another branch, if any.

  8. The tool must do these steps once by default but allow a parameter to loop with an option to set how many seconds between loops. Other tools like Hudson or CruiseControl could do more fancy scheduling options.

The tool must have good defaults but allow optional control.

  1. Which repo? origin by default.

  2. Which branches? all of them by default.

  3. What tool? by default an executable file to be provided by the user named “buildtest”, “buildtest.sh” “buildtest.cmd”, or buildtest.exe” in the root folder of the repository.

  4. Loop delay? run once by default with option to loop after a number of seconds between iterations.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T02:36:27+00:00Added an answer on May 14, 2026 at 2:36 am

    I wrote a tool I called git test-sequence a while back to do exactly this.

    I was just considering blogging about it because a friend was telling me it saved him a ton of work this week.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 515k
  • Answers 515k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Use single quotes. I cannot stress this enough. Also $… May 16, 2026 at 6:32 pm
  • Editorial Team
    Editorial Team added an answer You can perhaps edit the replace() function to add in… May 16, 2026 at 6:32 pm
  • Editorial Team
    Editorial Team added an answer Try instead: python manage.py dumpdata auth The dumpdata command doesn't… May 16, 2026 at 6:32 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Related Questions

I would like to write a command line tool that passes some formatted text
Just wondering which tool generated this git tree view? Thanks.
Everytime I do git status there is this folder that appears as untracked. $
I'm using git and been working heavily on my local repository the last week.
I'm converting the infrastructure at my workplace to use git instead of svn. The
I want to access a repository using both GIT and SVN clients. A way
I've been using git for some time now and understand how commits work, tags,
I'm about to start a project where programmers will be contributing from their homes
I using Hudson as my continuous integrations tool. Now when pulling down sources from
At my company we're using git for a couple of months now (and we're

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.