Skip to content

Commit

Permalink
Added latest test data
Browse files Browse the repository at this point in the history
  • Loading branch information
benedikt-schesch committed Jan 20, 2025
1 parent b05f7af commit 126de8f
Show file tree
Hide file tree
Showing 17 changed files with 67 additions and 254 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ merge_repo/
merges_small_valid_subsamples/
repos/
results/small/
.workdir/
.workdir*
scratch/
input_data/repos.csv.gz
.pytest_cache/
Expand Down
18 changes: 8 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ CSV_RESULTS_GREATEST_HITS = results/greatest_hits/result_raw.csv
CSV_RESULTS_REAPER = results/reaper/result_raw.csv
CSV_RESULTS = $(CSV_RESULTS_COMBINED)

NUM_PROCESSES = 0

showvars:
@echo "SH_SCRIPTS=${SH_SCRIPTS}"
@echo "BASH_SCRIPTS=${BASH_SCRIPTS}"
Expand All @@ -38,10 +36,6 @@ fix-java-style:
check-java-style:
./gradlew -q spotlessCheck javadoc requireJavadoc -g ../.gradle/

update-small-results:
rm -rf test/small-goal-files/
rsync -av --exclude='*.pdf' --exclude='*.png' --exclude='*unhandled_and_failed_merges_without_intellimerge*' --exclude='*.pgf' results/small/ test/small-goal-files/

# This target deletes files that are not committed to version control.
clean:
${MAKE} clean-workdir
Expand Down Expand Up @@ -112,16 +106,16 @@ copy-paper:
# As of 2023-07-31, this takes 5-20 minutes to run, depending on your machine.
small-test:
${MAKE} clean-test-cache clean
AST_REPOS_PATH=repos-small-test ./run_small.sh --include_trivial_merges --no_timing
AST_REPOS_PATH=repos-small-test DELETE_WORKDIRS=False WORKDIR_DIRECTORY=.workdir-small-test ./run_small.sh --include_trivial_merges --no_timing
${MAKE} compress-small-cache
${MAKE} small-test-diff
rm -rf results/small
AST_REPOS_PATH=repos-small-test ./run_small.sh --include_trivial_merges --no_timing
AST_REPOS_PATH=repos-small-test DELETE_WORKDIRS=False WORKDIR_DIRECTORY=.workdir-small-test ./run_small.sh --include_trivial_merges --no_timing
${MAKE} small-test-diff

small-test-without-cleaning:
${MAKE} clean-test-cache
AST_REPOS_PATH=repos-small-test ./run_small.sh --include_trivial_merges --no_timing
AST_REPOS_PATH=repos-small-test DELETE_WORKDIRS=False WORKDIR_DIRECTORY=.workdir-small-test ./run_small.sh --include_trivial_merges --no_timing
${MAKE} small-test-diff

update-figures:
Expand All @@ -130,7 +124,11 @@ update-figures:
./run_reaper.sh -op --no_timing

update-figures-small:
AST_REPOS_PATH=repos-small-test ./run_small.sh -op --no_timing
AST_REPOS_PATH=repos-small-test DELETE_WORKDIRS=False WORKDIR_DIRECTORY=.workdir-small-test ./run_small.sh -op --no_timing

update-small-results:
rm -rf test/small-goal-files/
rsync -av --exclude='*.pdf' --exclude='*.png' --exclude='*unhandled_and_failed_merges_without_intellimerge*' --exclude='*.pgf' results/small/ test/small-goal-files/

run-all-without-timing:
${MAKE} clean-workdir
Expand Down
40 changes: 40 additions & 0 deletions src/python/repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from pathlib import Path
from typing import Union, Tuple, List, Dict
import errno
import json
import signal
import functools
from enum import Enum
Expand Down Expand Up @@ -659,6 +660,45 @@ def compute_tree_fingerprint(self) -> str:
)
return result

def compute_tree_filehash_map(repo_path: Path) -> str:
"""
Computes a SHA256 for every file in the repository (excluding .git) and
returns a JSON string mapping each file path to its hash.
Args:
repo_path (Path): Path object pointing to the local repository folder.
Returns:
str: JSON string that maps from file path to its SHA256 hash.
"""
assert repo_path.exists(), f"Repository path {repo_path} does not exist"

# Construct the shell command very similarly to the original approach
# but we won't pipe it to sha256sum's input, we'll parse the output ourselves.
command = (
"export LC_ALL=C; export LC_COLLATE=C; cd "
+ str(repo_path)
+ " ; find . -type f -not -path '*/\\.git*' -exec sha256sum {} \\; | sort"
)

# Run the command and capture the output
output = subprocess.check_output(command, shell=True, executable="/bin/bash")
lines = output.decode("utf-8").strip().split("\n")

# Build a dictionary of file -> sha256
filehash_map = {}
for line in lines:
if not line.strip():
continue
# sha256sum typically outputs "<sha> <filename>"
sha, path = line.split(" ", 1)
# Remove leading './' so paths are more consistent
cleaned_path = path.lstrip("./")
filehash_map[cleaned_path] = sha

# Return as a pretty-printed JSON string
return json.dumps(filehash_map, indent=2)

def get_sha_cache_entry(
self, commit: str, start_merge: bool = False
) -> Union[None, dict]:
Expand Down
4 changes: 2 additions & 2 deletions src/python/variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
RIGHT_BRANCH_NAME = BRANCH_BASE_NAME + "_RIGHT"

CACHE_BACKOFF_TIME = 2 * 60 # 2 minutes, in seconds
DELETE_WORKDIRS = True
DELETE_WORKDIRS = os.getenv("DELETE_WORKDIRS", "True").lower() in ["true", "1", "yes"]
REPOS_PATH = (
Path(os.getenv("AST_REPOS_PATH")) if os.getenv("AST_REPOS_PATH") else Path("repos")
)
WORKDIR_DIRECTORY = Path(
".workdir"
os.getenv("WORKDIR_DIRECTORY", ".workdir")
) # Merges and testing will be performed in this directory.

TIMEOUT_MERGING = 60 * 15 # 15 minutes, in seconds
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
idx,branch_name,merge,left,right,notes,num_diff_files,union_diff_files,num_intersecting_files,num_diff_lines,num_diff_hunks,imports_involved,non_java_involved,diff contains java file,left_tree_fingerprint,left parent test result,right_tree_fingerprint,right parent test result,parents pass,test merge,sampled for testing,gitmerge_ort,gitmerge_ort_merge_fingerprint,gitmerge_ort_ignorespace,gitmerge_ort_ignorespace_merge_fingerprint,gitmerge_recursive_histogram,gitmerge_recursive_histogram_merge_fingerprint,gitmerge_recursive_myers_ignorespace,gitmerge_recursive_myers_ignorespace_merge_fingerprint,gitmerge_recursive_minimal,gitmerge_recursive_minimal_merge_fingerprint,gitmerge_recursive_myers,gitmerge_recursive_myers_merge_fingerprint,gitmerge_recursive_patience,gitmerge_recursive_patience_merge_fingerprint,gitmerge_resolve,gitmerge_resolve_merge_fingerprint,git_hires_merge,git_hires_merge_merge_fingerprint,spork,spork_merge_fingerprint,mergiraf,mergiraf_merge_fingerprint,intellimerge,intellimerge_merge_fingerprint,adjacent,adjacent_merge_fingerprint,imports,imports_merge_fingerprint,version_numbers,version_numbers_merge_fingerprint,ivn,ivn_merge_fingerprint,ivn_ignorespace,ivn_ignorespace_merge_fingerprint,gitmerge_ort_plus,gitmerge_ort_plus_merge_fingerprint,gitmerge_ort_ignorespace_plus,gitmerge_ort_ignorespace_plus_merge_fingerprint,gitmerge_recursive_histogram_plus,gitmerge_recursive_histogram_plus_merge_fingerprint,gitmerge_recursive_myers_ignorespace_plus,gitmerge_recursive_myers_ignorespace_plus_merge_fingerprint,gitmerge_recursive_minimal_plus,gitmerge_recursive_minimal_plus_merge_fingerprint,gitmerge_recursive_myers_plus,gitmerge_recursive_myers_plus_merge_fingerprint,gitmerge_recursive_patience_plus,gitmerge_recursive_patience_plus_merge_fingerprint,gitmerge_resolve_plus,gitmerge_resolve_plus_merge_fingerprint,git_hires_merge_plus,git_hires_merge_plus_merge_fingerprint,spork_plus,spork_plus_merge_fingerprint,mergiraf_plus,mergiraf_plus_merge_fingerprint,intellimerge_plus,intellimerge_plus_merge_fingerprint,adjacent_plus,adjacent_plus_merge_fingerprint,imports_plus,imports_plus_merge_fingerprint,version_numbers_plus,version_numbers_plus_merge_fingerprint,ivn_plus,ivn_plus_merge_fingerprint,ivn_ignorespace_plus,ivn_ignorespace_plus_merge_fingerprint
1,refs/heads/main,4ae40d33c3b959e3a15e458eb9b0676251e36a41,48199306f02a82abdeff0c01fab1ce112126d727,488122ce6c91e157d1f49b88b79feaa083fdee5b,,2,2,2,4,1,False,True,True,2252a9465319d00b974abd931cc98e1f435b4fe232b4dd61a828ad40139ec20c,Tests_passed,3782e47be673266f23cba016dc13973231429bb34e4c08a314c5b2f6c37d238f,Tests_passed,True,True,True,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,54749277742f9010b6666756eb77020e2b251b0c575b9ed96020fe650e660c3b,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,d04c699fb9748d42ffbbd2a94ae59e522247862c60f3dc29d7c3ed974fc47cb8,Merge_failed,89aea3021d6f4e0d388c026053c5a982bc802e7ad3ab3699717f5a425d4e572e,Tests_passed,37fdd5a8db81b80bee8cc5b121b9b2f70019498749193c47168e6aa4b86a02e9,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,a5220497c3fee81a6595e3ad38b4a71fd93ecb0fe26a8cf0757263ddcd08b2c1,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,e912cddc9e1862c3018466b17d8434ae2a960f6a52a06e167cfeefc5496a0f96,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,b4ea8b6a0fafbc08c69026bd9ceafa6082aef1228ec3f4e50b2b185243a04c2f,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19
1,refs/heads/main,4ae40d33c3b959e3a15e458eb9b0676251e36a41,48199306f02a82abdeff0c01fab1ce112126d727,488122ce6c91e157d1f49b88b79feaa083fdee5b,,2,2,2,4,1,False,True,True,2252a9465319d00b974abd931cc98e1f435b4fe232b4dd61a828ad40139ec20c,Tests_passed,3782e47be673266f23cba016dc13973231429bb34e4c08a314c5b2f6c37d238f,Tests_passed,True,True,True,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,54749277742f9010b6666756eb77020e2b251b0c575b9ed96020fe650e660c3b,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,d04c699fb9748d42ffbbd2a94ae59e522247862c60f3dc29d7c3ed974fc47cb8,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,37fdd5a8db81b80bee8cc5b121b9b2f70019498749193c47168e6aa4b86a02e9,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,ef4c209c29e2340769ae327c9f75e73b6b51949df13224268d2ce9d1e3978fde,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,e912cddc9e1862c3018466b17d8434ae2a960f6a52a06e167cfeefc5496a0f96,Tests_passed,1cebc99cd5f8a1b210b66b6985f8aa5c38c4af194a32ad23dc3c6261f43d2968,Tests_passed,b4ea8b6a0fafbc08c69026bd9ceafa6082aef1228ec3f4e50b2b185243a04c2f,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19,Merge_failed,66544c265579fd37b14384c25b569fb765721d9b8046fd6e4574d4b04ce68d19
2,refs/remotes/origin/import_1,0209c47c118fcaf978f6ebc5bad8a334b541de0b,b4331092d8c5d1b03e6a9807ab135ed263b52663,8204af9984280ccc7f7793f903fc0807b626bf9c,,2,2,2,5,2,True,True,True,f48eaaf883e49f3e3a1f3e1ddff64beb42c9d9bacec7d273f748baa63093bd9b,Tests_passed,052542ef8f16db238683e23556af730ee0d7c65c3ac0554d01e7ee800ca9b7c6,Tests_passed,True,True,True,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Merge_failed,4c1e23118bc3dc9db98dd8a5d322792c1987f738893ce43bf3032e71d37615a4,Merge_failed,4e0fa6edde284105a006148092586bd2bbce067c56588f4e5c02783786563c3f,Tests_passed,371b1c88034153afe8c3292ba4698b8bea2aa4aea4495b090a68f8f0555290d5,Tests_passed,0b6e7e0c545613a9596cd82770018aa3583e1b07d72e0f8c4fe84a72ae49a958,Tests_passed,6f65953e612e19453986bb2b697a79cbab808d3dc01cd3014db987083989a175,Tests_passed,0b6e7e0c545613a9596cd82770018aa3583e1b07d72e0f8c4fe84a72ae49a958,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Merge_failed,69e9fb68947b80201eb2a238ed6e463c457e27d75b3a7e02a1c27b7157d8ed5d,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,e912cddc9e1862c3018466b17d8434ae2a960f6a52a06e167cfeefc5496a0f96,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd,Tests_passed,6ee8bb20e8c7215279006bc73c3674b19d7b0a5d1b8cf9828ac8b34b56b3f4bd
Loading

0 comments on commit 126de8f

Please sign in to comment.