Skip to content

Commit

Permalink
Flaky analysis (#325)
Browse files Browse the repository at this point in the history
  • Loading branch information
benedikt-schesch authored Aug 12, 2024
1 parent 6878651 commit c3accc0
Show file tree
Hide file tree
Showing 41 changed files with 168 additions and 103 deletions.
11 changes: 11 additions & 0 deletions results/combined/defs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@
\def\combinedMergesTotal{5999\xspace}

% Results
\def\combinedAverageTriesUntilPass{1.0149383127709237\xspace}
\def\combinedNumberofTriesUntilPass1{44569\xspace}
\def\combinedNumberofTriesUntilPass2{256\xspace}
\def\combinedNumberofTriesUntilPass3{99\xspace}
\def\combinedNumberofTriesUntilPass4{26\xspace}
\def\combinedNumberofTriesUntilPass5{35\xspace}
\def\combinedNumberofTriesUntilPass6{0\xspace}
\def\combinedNumberofTriesUntilPass7{0\xspace}
\def\combinedNumberofTriesUntilPass8{0\xspace}
\def\combinedNumberofTriesUntilPass9{0\xspace}
\def\combinedNumberofTriesUntilPass10{0\xspace}
\def\combinedSporkOverOrtCorrect{515\xspace}
\def\combinedSporkOverOrtIncorrect{487\xspace}
\def\combinedMainBranchMerges{3532\xspace}
Expand Down
Binary file modified results/combined/plots/all/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/all/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/all/heatmap.pdf
Binary file not shown.
Binary file modified results/combined/plots/git/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/git/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/git/heatmap.pdf
Binary file not shown.
Binary file modified results/combined/plots/tools/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/tools/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/combined/plots/tools/heatmap.pdf
Binary file not shown.
11 changes: 11 additions & 0 deletions results/greatest_hits/defs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@
\def\greatestHitsMergesTotal{1151\xspace}

% Results
\def\greatestHitsAverageTriesUntilPass{1.0005064573309699\xspace}
\def\greatestHitsNumberofTriesUntilPass1{7895\xspace}
\def\greatestHitsNumberofTriesUntilPass2{2\xspace}
\def\greatestHitsNumberofTriesUntilPass3{1\xspace}
\def\greatestHitsNumberofTriesUntilPass4{0\xspace}
\def\greatestHitsNumberofTriesUntilPass5{0\xspace}
\def\greatestHitsNumberofTriesUntilPass6{0\xspace}
\def\greatestHitsNumberofTriesUntilPass7{0\xspace}
\def\greatestHitsNumberofTriesUntilPass8{0\xspace}
\def\greatestHitsNumberofTriesUntilPass9{0\xspace}
\def\greatestHitsNumberofTriesUntilPass10{0\xspace}
\def\greatestHitsSporkOverOrtCorrect{96\xspace}
\def\greatestHitsSporkOverOrtIncorrect{84\xspace}
\def\greatestHitsMainBranchMerges{524\xspace}
Expand Down
Binary file modified results/greatest_hits/plots/all/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/all/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/all/heatmap.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/git/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/git/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/git/heatmap.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/tools/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/tools/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/greatest_hits/plots/tools/heatmap.pdf
Binary file not shown.
11 changes: 11 additions & 0 deletions results/reaper/defs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@
\def\reaperMergesTotal{5432\xspace}

% Results
\def\reaperAverageTriesUntilPass{1.016290604940673\xspace}
\def\reaperNumberofTriesUntilPass1{40713\xspace}
\def\reaperNumberofTriesUntilPass2{256\xspace}
\def\reaperNumberofTriesUntilPass3{98\xspace}
\def\reaperNumberofTriesUntilPass4{26\xspace}
\def\reaperNumberofTriesUntilPass5{35\xspace}
\def\reaperNumberofTriesUntilPass6{0\xspace}
\def\reaperNumberofTriesUntilPass7{0\xspace}
\def\reaperNumberofTriesUntilPass8{0\xspace}
\def\reaperNumberofTriesUntilPass9{0\xspace}
\def\reaperNumberofTriesUntilPass10{0\xspace}
\def\reaperSporkOverOrtCorrect{454\xspace}
\def\reaperSporkOverOrtIncorrect{444\xspace}
\def\reaperMainBranchMerges{3260\xspace}
Expand Down
Binary file modified results/reaper/plots/all/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/all/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/all/heatmap.pdf
Binary file not shown.
Binary file modified results/reaper/plots/git/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/git/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/git/heatmap.pdf
Binary file not shown.
Binary file modified results/reaper/plots/tools/cost_with_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/tools/cost_without_manual.pdf
Binary file not shown.
Binary file modified results/reaper/plots/tools/heatmap.pdf
Binary file not shown.
3 changes: 2 additions & 1 deletion run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ run_latex_output() {
--full_repos_csv "$REPOS_CSV_WITH_HASHES" \
--repos_head_passes_csv "$OUT_DIR/repos_head_passes.csv" \
--n_merges "$N_MERGES" \
--output_dir "$OUT_DIR"
--output_dir "$OUT_DIR" \
--test_cache_dir "$CACHE_DIR/test_cache"
}

if [ "$only_plotting" = true ]; then
Expand Down
28 changes: 28 additions & 0 deletions src/python/latex_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
from variables import TIMEOUT_TESTING_PARENT, TIMEOUT_TESTING_MERGE
from repo import MERGE_STATE, TEST_STATE, MERGE_TOOL
from loguru import logger
from cache_utils import lookup_in_cache

matplotlib.use("pgf")
matplotlib.rcParams.update(
Expand Down Expand Up @@ -335,6 +336,7 @@ def main():
type=Path,
default=Path("results/combined/merges_analyzed"),
)
parser.add_argument("--test_cache_dir", type=Path, default=Path("cache/test_cache"))
parser.add_argument("--n_merges", type=int, default=100)
parser.add_argument("--output_dir", type=Path, default=Path("results/combined"))
parser.add_argument("--timed_merges_path", type=Path, default=None)
Expand Down Expand Up @@ -783,6 +785,32 @@ def main():

output += "\n% Results\n"

tries = []
for idx, merge in result_df.iterrows():
for merge_tool in MERGE_TOOL:
if merge[merge_tool.name] != TEST_STATE.Tests_passed.name:
continue
# Load cached test results
cache_entry = lookup_in_cache(
cache_key=merge[merge_tool.name + "_merge_fingerprint"],
repo_slug=merge["repository"],
cache_directory=args.test_cache_dir,
set_run=False,
)
tries.append(len(cache_entry["test_results"]))
average_tries = sum(tries) / len(tries) if len(tries) > 0 else 0
output += latex_def(run_name_camel_case + "AverageTriesUntilPass", average_tries)
# Output the number of merges for each amount of tries before pass
tries_count = {}
for t in tries:
if t not in tries_count:
tries_count[t] = 0
tries_count[t] += 1
for t in range(1, 11):
output += latex_def(
run_name_camel_case + f"NumberofTriesUntilPass{t}", tries_count.get(t, 0)
)

spork_correct = len(result_df[result_df["spork"].isin(MERGE_CORRECT_NAMES)])
ort_correct = len(result_df[result_df["gitmerge_ort"].isin(MERGE_CORRECT_NAMES)])
output += latex_def(
Expand Down
2 changes: 1 addition & 1 deletion src/python/merge_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ def plot_vertical_histogram(data, title, ax):
for repo_idx, repository_data in repos.iterrows():
repo_slug = repository_data["repository"]
merger_arguments += build_merge_analyzer_arguments(
repo_idx, args, repo_slug
str(repo_idx), args, repo_slug
)
progress.update(task, advance=1)

Expand Down
4 changes: 2 additions & 2 deletions src/python/merge_runtime_measure.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ def main():
run_times = []
for _ in range(args.n_timings):
repo = Repository(
merge_idx,
repo_slug,
merge_idx=str(merge_idx),
repo_slug=repo_slug,
workdir_id=repo_slug
+ f"/merge-tester-{merge_tool.name}-"
+ f"{left_hash}-{right_hash}",
Expand Down
26 changes: 13 additions & 13 deletions src/python/replay_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def merge_replay(
merge_idx,
repo_slug,
cache_directory=Path("no_cache/"),
workdir_id=workdir,
workdir_id=str(workdir),
delete_workdir=True if delete_workdir else False,
lazy_clone=False,
)
Expand All @@ -128,10 +128,10 @@ def merge_replay(
)
if not (WORKDIR_DIRECTORY / workdir).exists():
repo = Repository(
merge_idx,
repo_slug,
merge_idx=merge_idx,
repo_slug=repo_slug,
cache_directory=Path("no_cache/"),
workdir_id=workdir,
workdir_id=str(workdir),
delete_workdir=False,
lazy_clone=False,
)
Expand All @@ -143,10 +143,10 @@ def merge_replay(
)
if not (WORKDIR_DIRECTORY / workdir).exists():
repo = Repository(
merge_idx,
repo_slug,
merge_idx=merge_idx,
repo_slug=repo_slug,
cache_directory=Path("no_cache/"),
workdir_id=workdir,
workdir_id=str(workdir),
delete_workdir=False,
lazy_clone=False,
)
Expand All @@ -167,10 +167,10 @@ def merge_replay(
)
if not (WORKDIR_DIRECTORY / workdir).exists():
repo = Repository(
merge_idx,
repo_slug,
merge_idx=merge_idx,
repo_slug=repo_slug,
cache_directory=Path("no_cache/"),
workdir_id=workdir,
workdir_id=str(workdir),
delete_workdir=False,
lazy_clone=False,
)
Expand Down Expand Up @@ -213,10 +213,10 @@ def merge_replay(
continue
try:
repo = Repository(
merge_idx,
repo_slug,
merge_idx=merge_idx,
repo_slug=repo_slug,
cache_directory=Path("no_cache/"),
workdir_id=workdir,
workdir_id=str(workdir),
delete_workdir=False,
lazy_clone=False,
)
Expand Down
4 changes: 2 additions & 2 deletions src/python/test_repo_heads.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ def head_passes_tests(args: Tuple[pd.Series, Path]) -> pd.Series:
# Load repo
try:
repo = Repository(
"HEAD",
repo_slug,
merge_idx="HEAD",
repo_slug=repo_slug,
cache_directory=cache,
workdir_id=repo_slug + "/head-" + repo_info["repository"],
lazy_clone=True,
Expand Down
55 changes: 28 additions & 27 deletions test/small-goal-files/merges/tntim96/jscover.csv
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
idx,branch_name,merge_commit,parent_1,parent_2,notes
1,refs/heads/master,31361bbe2317967a9c47cfc4437e2ce706f79056,fe64f8c1071a356027e49247fd506edc23566c4d,ab9b573de54d1014b5d9822adc9d9e5cf43ba8c0,
2,refs/heads/master,fe64f8c1071a356027e49247fd506edc23566c4d,b9ead12fd4a28a9fd7074ad4e97128943b072828,f5cb9ece38b7bd9ae97d7a55490476b84a2336df,a parent is the base
3,refs/heads/master,d6f0d1998a8db93117ba9c261d3b35d03633dc59,0eca5983951641b5d0884e6ce8fd162185d0cf05,d686e46aa0582b7dbee1f0d8664d6cb4b56600ec,a parent is the base
4,refs/heads/master,f7a4cc17c3b97f600f5a982522100d2b0200a981,f3876ebe83363de9387bba9ec14d436e2d74d2b3,f59722bd1d3dcbf9fc183a49ee0e28ea3c42edf8,a parent is the base
5,refs/heads/master,526eaed4a82ee4ec9bb018e6d541c848d2bfdd0d,1adf11c82653576753af0502bfc1f63900d85780,e562b7ed71187c95e310f85e99d1325dbd49e331,a parent is the base
6,refs/heads/master,d780b34088c77fa4a5c7645b84d744f33ed0329f,428706a429ed1a3dca09588e989597fd9a9cb673,3a24d6bb388dfcf2696f71833f299e051e88cf1c,a parent is the base
7,refs/heads/master,5dc4fe25315e31fb1d6c3f58d802283634b6e37b,428706a429ed1a3dca09588e989597fd9a9cb673,26335cfc92a5aaa2df829c7ba52ac834ad1c4080,a parent is the base
8,refs/heads/master,9572ad5cfd2f4c20700e27f16c9e906e009d7137,c92c401a4335465b77e3bf95c47a3297fa633b5c,62d33c1ccc686ed687d04c8e874f0c36bbcfc43e,a parent is the base
9,refs/heads/master,9ed0dc2b5892b2b2a782435b0a5dd42f90737b97,4ba5c58dfb6bf266259b80ab2fe19057910b6dba,7d6f336981e2d3c0a3e81fc663b6e4590f8aab0b,a parent is the base
10,refs/heads/master,c5bb794c4ca20c492818cdc13d4c72ad57961835,d709ecd47d92508d22f60e288fbe49b36f4b5246,9539280c2e350f6104b01c366ad8557e174f46da,a parent is the base
11,refs/heads/master,58557bba03e3cd911b334f451d7bf20c84d54045,0eee54986010067c05972426937c3459b979a840,a4fb3645a032633128f78786d779101b46a16581,a parent is the base
12,refs/heads/master,5c0f3bc432afa70ae19ced28fd4655effffa643f,bf98af8c6a8559d82a24d8f6f11d5fc23d29523e,f04fe03a282ca2520de93a3f13fe4c06146e5823,a parent is the base
13,refs/heads/master,885ba1e858932e9715e9b27a722a129e2611caab,c5f2600a6830cb2fc14647c98a9038832d20677f,48ce23c6b5857dd37a5658eb544fad390a4e3d44,a parent is the base
14,refs/heads/master,ba5decc5f42a1fd11825415612eaf104b8879c9a,b387036e5d7bba871c330469f2143c242f12a0d5,95d545f377cf84ccd52b54dc0c644d18daa447a6,a parent is the base
15,refs/heads/master,89ffb42fa4b9efa275282cd90369be4423441a94,5a3b21b0db2cbc45f1dccbeae832654c4b5c812e,b8d19bf433f60c02f28d046702a1ea86a157ecf6,a parent is the base
16,refs/heads/master,c4db946b2d372f8bde079792b1cee93ac36921d2,3d76e008055d175af8fdbb90d6c5a0ced62faf0d,4534140b2526b36b39bcdf6d417d977db7a5cb1a,a parent is the base
17,refs/heads/master,ea0851ac5e27d2a1a13acd2110094c46c44a849e,c0603903e4b5caeb83d2c93ceabba1e9ea59af19,e405a7f2926be3103a388e990701af1f260bc905,
18,refs/heads/master,2a9f0eb4e7a59587ef0fb8a9312ba5edf0078145,92d6114663b80b24d1f9bb6d282138cf6094857e,b9a2ee7526cf561aa2ff511fe9872792bd315e91,
19,refs/heads/master,75e03285fddc0e2510c4f20c56ac607702fc3c9a,56dc97e7850da6b5a904b57c5e288cbb89fde81d,46b585e31b43ec0d1740395b38d15fd4e4f8c60f,
20,refs/heads/master,10f916b7a0fd5953ae6f684cadd28fa87e9124e4,0fb55976f6e30ddcc8ae7af393ee0dd8d14e20e9,0256cc6b3b9f9470458ff418e6648c635c20e787,
21,refs/heads/master,0fb55976f6e30ddcc8ae7af393ee0dd8d14e20e9,b9f47e216af0bc46830e0cb0c6964218511bbb3f,974ce1770dc602051b320619e240603cc5358d64,
22,refs/heads/master,00c10a4e7f42a484209a443934c833c5970f462f,8e0ad29ac0d484db3eccc4bee791b72cc6222e4c,530d40378d2d17276f71b18f871637fea2937ecf,
23,refs/heads/master,adf6fd024df05daf3236ce42e8cd90b5e4448131,dca3e3596b0b880e9eb4406490488ce93bc9116a,0575f5e918deec26aba2eb2a18f0e87af679d81b,a parent is the base
24,refs/heads/master,3ae921c45ac9a68844bbdc1d53a8a7ca262fb6b7,8fb1d13ac9c28ccf9723a4328141816f224337b9,aec694fe670b35eb827c473f5fbaf205cd59a0ba,
25,refs/heads/master,ac65c8f97187f99331093624c7829d3688a50297,fb4312ddbbf301484ff0e1243cfdf12d6a2fb840,c8937ebc236d924201af98021a50091ab0ee013a,
26,refs/remotes/origin/gh-pages,9217160ed01a2bb7e57cd07001fc0da20135ad21,49868943e60fdb40de33c4416aae6a8517ef3d7f,bd0c5960622a73573c9fa5fb0f356ba575c3676c,a parent is the base
27,refs/remotes/origin/pull/94,c905e6a5da47ddf684d6cb6b6c52a6d5cb0d2e3b,390eb1dbfc709f2b75889697a9296ffeb06424a4,2e483d3cd3abbb5b6af28ea519278f597ccded96,
1,refs/heads/master,e39e553da29ca3fcbb3d7eb06282eb58b78b85c7,a4292a9c149820e9101613291bff68fc240226d7,d90d5a006a58af005834ebfe553aae560f0fe2c7,a parent is the base
2,refs/heads/master,31361bbe2317967a9c47cfc4437e2ce706f79056,fe64f8c1071a356027e49247fd506edc23566c4d,ab9b573de54d1014b5d9822adc9d9e5cf43ba8c0,
3,refs/heads/master,fe64f8c1071a356027e49247fd506edc23566c4d,b9ead12fd4a28a9fd7074ad4e97128943b072828,f5cb9ece38b7bd9ae97d7a55490476b84a2336df,a parent is the base
4,refs/heads/master,d6f0d1998a8db93117ba9c261d3b35d03633dc59,0eca5983951641b5d0884e6ce8fd162185d0cf05,d686e46aa0582b7dbee1f0d8664d6cb4b56600ec,a parent is the base
5,refs/heads/master,f7a4cc17c3b97f600f5a982522100d2b0200a981,f3876ebe83363de9387bba9ec14d436e2d74d2b3,f59722bd1d3dcbf9fc183a49ee0e28ea3c42edf8,a parent is the base
6,refs/heads/master,526eaed4a82ee4ec9bb018e6d541c848d2bfdd0d,1adf11c82653576753af0502bfc1f63900d85780,e562b7ed71187c95e310f85e99d1325dbd49e331,a parent is the base
7,refs/heads/master,d780b34088c77fa4a5c7645b84d744f33ed0329f,428706a429ed1a3dca09588e989597fd9a9cb673,3a24d6bb388dfcf2696f71833f299e051e88cf1c,a parent is the base
8,refs/heads/master,5dc4fe25315e31fb1d6c3f58d802283634b6e37b,428706a429ed1a3dca09588e989597fd9a9cb673,26335cfc92a5aaa2df829c7ba52ac834ad1c4080,a parent is the base
9,refs/heads/master,9572ad5cfd2f4c20700e27f16c9e906e009d7137,c92c401a4335465b77e3bf95c47a3297fa633b5c,62d33c1ccc686ed687d04c8e874f0c36bbcfc43e,a parent is the base
10,refs/heads/master,9ed0dc2b5892b2b2a782435b0a5dd42f90737b97,4ba5c58dfb6bf266259b80ab2fe19057910b6dba,7d6f336981e2d3c0a3e81fc663b6e4590f8aab0b,a parent is the base
11,refs/heads/master,c5bb794c4ca20c492818cdc13d4c72ad57961835,d709ecd47d92508d22f60e288fbe49b36f4b5246,9539280c2e350f6104b01c366ad8557e174f46da,a parent is the base
12,refs/heads/master,58557bba03e3cd911b334f451d7bf20c84d54045,0eee54986010067c05972426937c3459b979a840,a4fb3645a032633128f78786d779101b46a16581,a parent is the base
13,refs/heads/master,5c0f3bc432afa70ae19ced28fd4655effffa643f,bf98af8c6a8559d82a24d8f6f11d5fc23d29523e,f04fe03a282ca2520de93a3f13fe4c06146e5823,a parent is the base
14,refs/heads/master,885ba1e858932e9715e9b27a722a129e2611caab,c5f2600a6830cb2fc14647c98a9038832d20677f,48ce23c6b5857dd37a5658eb544fad390a4e3d44,a parent is the base
15,refs/heads/master,ba5decc5f42a1fd11825415612eaf104b8879c9a,b387036e5d7bba871c330469f2143c242f12a0d5,95d545f377cf84ccd52b54dc0c644d18daa447a6,a parent is the base
16,refs/heads/master,89ffb42fa4b9efa275282cd90369be4423441a94,5a3b21b0db2cbc45f1dccbeae832654c4b5c812e,b8d19bf433f60c02f28d046702a1ea86a157ecf6,a parent is the base
17,refs/heads/master,c4db946b2d372f8bde079792b1cee93ac36921d2,3d76e008055d175af8fdbb90d6c5a0ced62faf0d,4534140b2526b36b39bcdf6d417d977db7a5cb1a,a parent is the base
18,refs/heads/master,ea0851ac5e27d2a1a13acd2110094c46c44a849e,c0603903e4b5caeb83d2c93ceabba1e9ea59af19,e405a7f2926be3103a388e990701af1f260bc905,
19,refs/heads/master,2a9f0eb4e7a59587ef0fb8a9312ba5edf0078145,92d6114663b80b24d1f9bb6d282138cf6094857e,b9a2ee7526cf561aa2ff511fe9872792bd315e91,
20,refs/heads/master,75e03285fddc0e2510c4f20c56ac607702fc3c9a,56dc97e7850da6b5a904b57c5e288cbb89fde81d,46b585e31b43ec0d1740395b38d15fd4e4f8c60f,
21,refs/heads/master,10f916b7a0fd5953ae6f684cadd28fa87e9124e4,0fb55976f6e30ddcc8ae7af393ee0dd8d14e20e9,0256cc6b3b9f9470458ff418e6648c635c20e787,
22,refs/heads/master,0fb55976f6e30ddcc8ae7af393ee0dd8d14e20e9,b9f47e216af0bc46830e0cb0c6964218511bbb3f,974ce1770dc602051b320619e240603cc5358d64,
23,refs/heads/master,00c10a4e7f42a484209a443934c833c5970f462f,8e0ad29ac0d484db3eccc4bee791b72cc6222e4c,530d40378d2d17276f71b18f871637fea2937ecf,
24,refs/heads/master,adf6fd024df05daf3236ce42e8cd90b5e4448131,dca3e3596b0b880e9eb4406490488ce93bc9116a,0575f5e918deec26aba2eb2a18f0e87af679d81b,a parent is the base
25,refs/heads/master,3ae921c45ac9a68844bbdc1d53a8a7ca262fb6b7,8fb1d13ac9c28ccf9723a4328141816f224337b9,aec694fe670b35eb827c473f5fbaf205cd59a0ba,
26,refs/heads/master,ac65c8f97187f99331093624c7829d3688a50297,fb4312ddbbf301484ff0e1243cfdf12d6a2fb840,c8937ebc236d924201af98021a50091ab0ee013a,
27,refs/remotes/origin/gh-pages,9217160ed01a2bb7e57cd07001fc0da20135ad21,49868943e60fdb40de33c4416aae6a8517ef3d7f,bd0c5960622a73573c9fa5fb0f356ba575c3676c,a parent is the base
28,refs/remotes/origin/pull/94,c905e6a5da47ddf684d6cb6b6c52a6d5cb0d2e3b,390eb1dbfc709f2b75889697a9296ffeb06424a4,2e483d3cd3abbb5b6af28ea519278f597ccded96,
Loading

0 comments on commit c3accc0

Please sign in to comment.