Looking at this file it seems that the name of the changelog file is one of the criteria to determine if a changeset was already applied to an database or not. Even worse the entire path to the file is used. The complete path also appears in the DATABASECHANGELOG table.
Having multiple developers and continuous integration servers with different paths makes liquibase think it has to apply all changesets again. Also switching between absolute and relative paths seems to trigger the same issue. Am I missing something? Is this bahavior configurable?