RCS—a system for version control
Software—Practice & Experience
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
Change impact analysis for object-oriented programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Parallel changes in large-scale software development: an observational case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
Test Driven Development: By Example
Test Driven Development: By Example
Hipikat: recommending pertinent software development artifacts
Proceedings of the 25th International Conference on Software Engineering
Palantír: raising awareness among configuration management workspaces
Proceedings of the 25th International Conference on Software Engineering
The evolution of a Source Code Control System
Proceedings of the software quality assurance workshop on Functional and performance issues
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Leveraging field data for impact analysis and regression testing
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Jazzing up Eclipse with collaborative tools
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
Version Control With Subversion
Version Control With Subversion
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Empirical Software Engineering
Crisp: A Debugging Tool for Java Programs
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Process model and awareness in SCM
Proceedings of the 12th international workshop on Software configuration management
Finding failure-inducing changes in java programs using change classification
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Practical Subversion, Second Edition
Practical Subversion, Second Edition
Identifying Failure Causes in Java Programs: An Application of Change Impact Analysis
IEEE Transactions on Software Engineering
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
JUnitMX - A change-aware unit testing tool
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Test-driven roles for pair programming
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Proactive detection of collaboration conflicts
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Real-time collaborative coding in a web IDE
Proceedings of the 24th annual ACM symposium on User interface software and technology
Cassandra: proactive conflict minimization through optimized task scheduling
Proceedings of the 2013 International Conference on Software Engineering
Understanding regression failures through test-passing and test-failing code changes
Proceedings of the 2013 International Conference on Software Engineering
The impact of tangled code changes
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.00 |
Software development teams exchange source code in shared repositories. These repositories are kept consistent by having developers follow a commit policy, such as “Program edits can be committed only if all available tests succeed.” Such policies may result in long intervals between commits, increasing the likelihood of duplicative development and merge conflicts. Furthermore, commit policies are generally not automatically enforceable. We present a program analysis to identify committable changes that can be released early, without causing failures of existing tests, even in the presence of failing tests in a developer's local workspace. The algorithm can support relaxed commit policies that allow early release of changes, reducing the potential for merge conflicts. In experiments using several versions of a non-trivial software system with failing tests, 3 newly enabled commit policies were shown to allow a significant percentage of changes to be committed.